首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >还有其他方法可以找到iOS 7 UDID吗?

还有其他方法可以找到iOS 7 UDID吗?
EN

Stack Overflow用户
提问于 2013-10-03 18:30:21
回答 2查看 1.3K关注 0票数 0

我想知道如何克服iOS 7 udid issue

我们已经尝试过了:我们已经实现了vendorUniqueID,正如苹果所建议的那样,一旦用户卸载应用程序,它将被更改,因此不是一个好的选择。

广告唯一的标识不是一个选项;正如苹果公司建议的那样,它只用于广告目的。因为我们的应用不是广告展示应用。

我们需要知道的是:我们已经有了恢复id,是否有一种方法可以在重新安装应用程序之后检索到store that restoration ID

我想知道Google的分析版和“狂暴分析版”是如何跟踪的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-06 05:51:45

您可以通过执行以下步骤来完成此操作。

1)在项目中导入<Security/Security.h>

2)使用SecItemAdd方法将详细信息保存到密钥链中。

代码语言:javascript
运行
复制
-(void) saveUsername:(NSString*)user withPassword:(NSString*)pass forServer:(NSString*)server {

    // Create dictionary of search parameters
    NSDictionary* dict = [NSDictionary dictionaryWithObjectsAndKeys:kSecClassInternetPassword,  kSecClass, server, kSecAttrServer, kCFBooleanTrue, kSecReturnAttributes, nil];

    // Remove any old values from the keychain
    OSStatus err = SecItemDelete((CFDictionaryRef) dict);

    // Create dictionary of parameters to add
    NSData* passwordData = [pass dataUsingEncoding:NSUTF8StringEncoding];
    dict = [NSDictionary kSecClassInternetPassword, kSecClass, server, kSecAttrServer, passwordData, kSecValueData, user, kSecAttrAccount, nil];

    // Try to save to keychain
    err = SecItemAdd((CFDictionaryRef) dict, NULL);

}

3)即使删除了应用程序,也可以从密钥链中获取存储的数据。

代码语言:javascript
运行
复制
-(void) getCredentialsForServer:(NSString*)server {

    // Create dictionary of search parameters
    NSDictionary* dict = [NSDictionary dictionaryWithObjectsAndKeys:kSecClassInternetPassword,  kSecClass, server, kSecAttrServer, kCFBooleanTrue, kSecReturnAttributes, nil];

    // Look up server in the keychain
    NSDictionary* found = nil;
    OSStatus err = SecItemCopyMatching((CFDictionaryRef) dict, (CFDictionaryRef*) &found);
    if (!found) return;

    // Found
    NSString* user = (NSString*) [found objectForKey:kSecAttrAccount];
    NSString* pass = [[NSString alloc] initWithData:[found objectForKey:kSecValueData] encoding:NSUTF8StringEncoding];
    UIAlertView * alertView=[[UIAlertView alloc] initWithTitle:@"Key found" message:[NSString stringWithFormat:@"user : %@ pass :%@",user,pass] delegate:nil cancelButtonTitle:@"Okay" otherButtonTitles:nil] ;
    [alertView show];
    NSLog(@"user %@ : pass  %@", user,pass);

}

4)如果您想要从密钥链中删除此属性字典,您可以这样做。

代码语言:javascript
运行
复制
-(void) removeAllCredentialsForServer:(NSString*)server {

    // Create dictionary of search parameters
    NSDictionary* dict = [NSDictionary dictionaryWithObjectsAndKeys:kSecClassInternetPassword,  kSecClass, server, kSecAttrServer, kCFBooleanTrue, kSecReturnAttributes, kCFBooleanTrue, kSecReturnData, nil];

    // Remove any old values from the keychain
    OSStatus err = SecItemDelete((CFDictionaryRef) dict);

}
票数 5
EN

Stack Overflow用户

发布于 2013-10-03 20:49:13

即使应用程序被删除,存储到密钥链中的任何信息也将被还原。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19166538

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档