如何获取ios系统信息

主要研究UIDevice 类。


  1. //获取设备id号  

    UIDevice *device = [UIDevice currentDevice];//创建设备对象 
    NSString *deviceUID = [[NSString alloc] initWithString:[device uniqueIdentifier]]; 
    NSLog(@"%@",deviceUID); // 输出设备id
  2. NSString *version = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleShortVersionString"];//获取软件版本号
  3. NSString *systemVersion   =   [[UIDevice currentDevice] systemVersion];//系统版本  
  4. NSString *systemModel    =   [[UIDevice currentDevice] model];//是iphone 还是 ipad  
  5. NSDictionary *dic    =   [[NSBundle mainBundle] infoDictionary];//获取info-plist  
  6. NSString *appName  =   [dic objectForKey:@"CFBundleIdentifier"];//获取Bundle identifier  
  7. NSString *appVersion   =   [dic valueForKey:@"CFBundleVersion"];//获取Bundle Version      
  8. NSDictionary *userInfo = [[NSDictionary alloc] initWithObjectsAndKeys:  
  9.     deviceID, @"deviceID",  
  10.     systemVersion, @"systemVersion",  
  11.     systemModel, @"systemModel",  
  12.     appName, @"appName",  
  13.     appVersion, @"appVersion",nil]; 



获取UUID并存储

UDID被弃用,使用UUID来作为设备的唯一标识。获取到UUID后,如果用NSUserDefaults存储,当程序被卸载后重装时,再获得的UUID和之前就不同了。使用keychain存储可以保证程序卸载重装时,UUID不变。但当刷机或者升级系统后,UUID还是会改变的。但这仍是目前为止最佳的解决办法了,如果有更好的解决办法,欢迎留言。

(我整理的解决办法的参考来源:http://blog.k-res.net/archives/1081.html)
给大家两个类:

UUID.h中的代码:

#import尖括号(Foundation/Foundation.h)


@interface UUID : NSObject


+(NSString *)getUUID;


@end


 

UUID.m中的代码:

#import "UUID.h"

#import 尖括号(Foundation/Foundation.h)

#import"KeychainItemWrapper.h"



@implementation UUID


+(NSString *)getUUID

{

   KeychainItemWrapper *keychainItem = [[KeychainItemWrapperalloc]

                                  

                              initWithIdentifier:@"UUID"

                                 

                                                                    accessGroup:@"YOUR_BUNDLE_SEED.com.yourcompany.userinfo"];


   

    NSString *strUUID = [keychainItemobjectForKey:(id)CFBridgingRelease(kSecValueData)];


  //首次执行该方法时,uuid为空

    if ([strUUID isEqualToString:@""])


    {

       CFUUIDRef uuidRef = CFUUIDCreate(kCFAllocatorDefault);


       strUUID = (NSString *)CFBridgingRelease(CFUUIDCreateString (kCFAllocatorDefault,uuidRef));


       [keychainItem setObject:strUUIDforKey:(id)CFBridgingRelease(kSecValueData)];

  

    }

    return strUUID;

}


@end


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值