Tag: 钥匙串

从iOS键盘扩展中访问钥匙串

我写了一些代码来在应用程序和扩展之间共享数据。 该代码完美工作与“行动扩展”,而与“自定义键盘”扩展失败。 从“自定义键盘”扩展的每个对钥匙串的访问都以相同的错误状态结束:-25291,errSecNotAvailable,“钥匙链不可用”或“钥匙串pipe理器未加载”。 访问自定义键盘扩展中的钥匙串是否存在已知限制? 我没有find任何关于这个。 问候。 SébastienBrault。

IOS在钥匙串中存储多个密码

在我的应用程序中,我可以使用此代码在钥匙串中保存读取良好的1个密码存储区 // save password [keychainItem setObject:textFieldPassword.text forKey:(__bridge id)(kSecValueData)]; //get pasword from keychain NSString *_password = [keychainItem objectForKey:(__bridge id)(kSecValueData)]; 我的问题是:如何在钥匙串中一次存储超过一个密码?

在keychain / userdefaults中保存atomic属性是否有优势?

为了在NSUserDefaults / keychains中存储一些值,有没有primefaces或非primefaces属性的好处?

该可执行文件仅在设备上签有无效授权错误

我在Xamarin中创build了一个iPhone应用程序。 我已经在Entitlements.plist中启用了KeyChain共享,这样我就可以在类似的应用程序中共享一些数据。 该应用程序在模拟器上正常工作和debugging。 但是,当我使用开发或分发供应configuration文件签署应用程序时,应用程序不会部署在设备上。 如果我禁用KeyChain共享应用程序工作正常。 我得到这样的错误: Info (216) / streaming_zip_conduit: _dispatch_source_read_socket_block_invoke:312: Failed to install application at file:///var/mobile/Media/PublicStaging/appname.iOS.app/ : Error Domain=MIInstallerErrorDomain Code=13 "Failed to verify code signature of /private/var/installd/Library/Caches/com.apple.mobile.installd.staging/temp.VEgA0a/extracted/Poll365.iOS.app : 0xe8008016 (The executable was signed with invalid entitlements.)" UserInfo={LibMISErrorNumber=-402620394, LegacyErrorString=ApplicationVerificationFailed, SourceFileLine=147, FunctionName=+[MICodeSigningVerifier validateSignatureAndCopyInfoForURL:withOptions:error:], NSLocalizedDescription=Failed to verify code signature of /private/var/installd/Library/Caches/com.apple.mobile.installd.staging/temp.VEgA0a/extracted/appname.iOS.app : 0xe8008016 (The executable was signed […]

configuration文件不包括证书

使用Xcode 9.1,在创build一个iOS应用之后,我尝试对它进行存档。 但是我收到以下错误消息: 供应configuration文件“MyAppProfile”不包括签名证书“​​iPhone Developer:我的名字(X1YZ2AB3CD)”。 解决这个问题最简单的方法是什么?

分发configuration文件请求开发者证书

使用Xcode 9.1,在创build一个iOS应用之后,我尝试对它进行存档。 但是我收到以下错误消息: 供应configuration文件“MyAppProfile”不包括签名证书“​​iPhone Developer:我的名字(X1YZ2AB3CD)”。 仔细观察后,我看到MyAppProfile是一个Distribution Provisioning Profile(这是我想要的),X1YZ2AB3CD与Developer证书相匹配。但是在构buildMyAppProfile(对于App Store)时,我提供了一个唯一的分发证书的select证书)。 那么为什么我得到这个消息抱怨MyAppProfile不包括开发人员证书。 我有点失落。 任何人都可以在这里谈一谈? 如果我放弃手动签名,这是我试图上传到appStore时得到的: 自动签名无法解决“MyApp.app”目标授权的问题。 切换到手动签名并通过从开发人员网站下载匹配的configuration文件来解决问题。 另外,为了继续使用自动签名,请从您的代码中删除您的授权文件及其相关function中的这些授权。 然后重build你的档案,然后再试一次。 供应configuration文件失败的资格configuration文件与应用程序标识符权利的权利文件的值不匹配。

如何通过iCloud同步钥匙串

我不想为我的应用程序在钥匙串中存储敏感数据。 我也想这样使用iCloud同步设备。 根据苹果这是可能的: iCloud Keychain是否可以与第三方应用程序一起使用? 是。 开发人员可以更新他们的应用程序以使用iCloud Keychain。 这些应用程序保存的密码在所有使用该应用程序并使用iOS 7.0.3或更高版本或OS X Mavericks v10.9或更高版本的设备上保持最新。 但是,我找不到有关应用程序需要什么的文档。 如果用户启用了iCloud Keychain,钥匙串的所有内容是否会同步?

iOS Keychain偶尔会返回空string

我写非常安全的应用程序(银行),我把私钥钥匙链。 我使用下面的代码保持私钥: +(void)savePrivatekey:(NSString *)Key { KeychainItemWrapper *keychain = [[KeychainItemWrapper alloc] initWithIdentifier:@"pKey" accessGroup:nil]; [keychain setObject:Key forKey:(id)kSecValueData]; [keychain release]; } 并使用以下代码获取私钥: +(NSString *)privateKey { KeychainItemWrapper *keychain = [[KeychainItemWrapper alloc] initWithIdentifier:@"pKey"accessGroup:nil]; NSString *privateKey = [keychain objectForKey:(id)kSecValueData]; [keychain release]; return privateKey; } 出于安全原因,我不把私钥保存在局部variables中。 因为每次调用服务器都需要我调用很多次的“GetPrivateKey”的私钥。 也许这就是为什么有时我从钥匙串空string中获得。 我想不出为什么会发生这种情况。 我注意到,在大多数情况下,这发生在应用程序从后台返回,但不仅…谢谢… 我给苹果的工程师开了票,他们回答我: 当您最初创build钥匙串项目时,您是否设置了kSecAttrAccessible属性? 我总是创build相同的形状钥匙串:KeychainItemWrapper * keychain = [[KeychainItemWrapper alloc] initWithIdentifier:@“pKey”accessGroup:nil]; 有谁知道他们的意图是什么? 谢谢…

将钥匙链中的.p12证书存储在稍后使用

我想在这里跟随苹果文档处理客户端p12证书: https://developer.apple.com/library/ios/documentation/Security/Conceptual/CertKeyTrustProgGuide/iPhone_Tasks/iPhone_Tasks.html#//apple_ref/doc/uid/TP40001358-CH208-SW13 我已成功从文件系统加载.p12证书: – (SecIdentityRef)getClientCertificate:(NSString *) certificatePath { SecIdentityRef identity = nil; NSData *PKCS12Data = [NSData dataWithContentsOfFile:certificatePath]; CFDataRef inPKCS12Data = (__bridge CFDataRef)PKCS12Data; CFStringRef password = CFSTR("password"); const void *keys[] = { kSecImportExportPassphrase }; const void *values[] = { password }; CFDictionaryRef options = CFDictionaryCreate(NULL, keys, values, 1, NULL, NULL); CFArrayRef items = CFArrayCreate(NULL, 0, 0, […]

我应该使用哪个密钥将密码存储在iOS钥匙串中?

Apple GenericKeychain示例中的KeychainItemWrapper类使用kSecValueData键来存储密码。 但是引用http://developer.apple.com/library/ios/#documentation/Security/Reference/keychainservices/Reference/reference.html#//apple_ref/doc/uid/TP30000898 kSecValueData被用在SecItemCopyMatching或SecItemAdd的结果字典中,指示返回值的types。 当我调用SecItemAdd创build一个keychain项目时,应该使用哪个键?