草庐IT

ios - 如何在卸载应用程序时删除钥匙串(keychain)数据?

这个问题在这里已经有了答案:Deletekeychainitemswhenanappisuninstalled(9个回答)关闭8年前。我有一个问题。我正在为我的应用程序在设备钥匙串(keychain)上保存一些重要信息,但是当我卸载应用程序并再次安装时,这些数据仍然保存。如何在应用程序卸载时删除这些信息?如果这不可能,如何在不在NSUserDefaults中保存信息的情况下检测应用程序在安装后首次加载的时间?非常感谢。

iphone - 从钥匙串(keychain)访问导出公钥

我想存档我的应​​用程序以便在两台计算机上分发。我成功导出私钥并将其导入我的第二台机器,但是在导入公钥时遇到错误。在我搜索的所有地方,人们总是提到只导出私钥——这是为什么呢?如何导出公钥并成功传输?我究竟做错了什么? 最佳答案 如thisbugreport所示,它自2009年以来一直被破坏.如果该报告在互联网上流传,这里是导入公钥pem文件的相关说明。您需要在终端中执行此操作。securityimportpub_key.pem-k~/Library/Keychains/login.keychain

ios - 使用 updateApplicationContext 发送钥匙串(keychain)值是否安全

在watchOS2中,不再有共享钥匙串(keychain)。如果我想将钥匙串(keychain)值从iOS应用程序发送到Watch应用程序,通过WCSessionupdateApplicationContext发送它是否安全? 最佳答案 是的。如果您的钥匙串(keychain)值没有改变,并且您反复更新您的应用程序上下文,您可能希望安排只发送一次该值(以便watch添加到其钥匙串(keychain)),而不是重复重新发送钥匙串(keychain)值.Apple工程师讨论usingWatchConnectivitytosendkeyc

iphone - 当我向 AppStore 提交应用程序更新时,更新配置文件是否会影响钥匙串(keychain)访问?

我有一个iPhone应用usesthekeychain用于与身份验证相关的存储。我还有一个即将到期的配置文件。在documentationforkeychainaccess它指出:OniPhone,Keychainrightsdependontheprovisioningprofileusedtosignyourapplication.Besuretoconsistentlyusethesameprovisioningprofileacrossdifferentversionsofyourapplication.因为我的ProvisioningProfile即将过期,我更新了它(在配置

iphone - 钥匙串(keychain)中缺少私钥iphone开发者

我正尝试在我的iPhone上运行一个应用程序,但我在代码签名身份方面遇到了问题。实际上,我的钥匙串(keychain)中有两份证书,一份用于分发,一份用于开发,但没有私钥。我尝试再次从developer.apple.com下载证书但我仍然没有私钥。事实上,我无法从Target->Buildsettings->CodesigningIdentity选择iPhone开发者配置文件,因为我收到错误:Profiledoesn'tmatchanyvalidcertificate/privatekeypairinyourkeychains.此外,在组织者中,开发者资料的状态是:Validsigni

iOS:在钥匙串(keychain)中预安装 SSL 证书 - 以编程方式

我想在用户访问网站之前在钥匙串(keychain)中安装/保存证书。我有一个HTTPS服务器,我的应用程序在用户转到https://mysite之前对用户进行身份验证.有没有一种方法可以通过钥匙串(keychain)中的POST请求安装/保存证书,或者我可以将该证书(文件)复制到资源包以将其标记为可信吗? 最佳答案 获得der格式的服务器证书后,您可以尝试以下代码:+(void)addCertToKeychain:(NSData*)certInDer{OSStatuserr=noErr;SecCertificateRefcert;c

ios - 将 NSDictionary 存储在钥匙串(keychain)中

可以使用KeychainItemWrapper(或不使用)将NSDictionary存储在iPhone钥匙串(keychain)中吗?如果不可能,您还有其他解决方案吗? 最佳答案 在将NSDictionary存储到Keychain之前,您必须正确序列化它。使用:[dicdescription][dicpropertyList]你最终会得到一个只有NSString对象的NSDictionary集合。如果要维护对象的数据类型,可以使用NSPropertyListSerialization。KeychainItemWrapper*keyc

iphone - 钥匙串(keychain)组访问以在我现有的应用程序之间共享数据

我在AppStore上有很多iOS应用程序。现在对于下一个版本的应用程序,我想为每个应用程序保留一段数据以在KeyChain中共享。据我所知,我需要在Apple的KeychainItemWrapper类中提供相同的钥匙串(keychain)访问组。*keychain=[[KeychainItemWrapperalloc]initWithIdentifier:@"Anystring"accessGroup:];我知道自定义URL,但它没有用,因为我希望数据持久化。我的所有应用程序都具有不同的bundle种子ID,正如我从配置门户中看到的那样。我知道共享钥匙串(keychain)访问的主要

iphone - 是否可以更新钥匙串(keychain)项的 kSecAttrAccessible 值?

是否可以更新钥匙串(keychain)中现有项目的属性kSecAttrAccessible的值?似乎在将项目添加到钥匙串(keychain)后无法更改。以下步骤支持我的假设。将新项目添加到钥匙串(keychain):NSData*encodedIdentifier=[@"BUNDLE_IDENTIFIER"dataUsingEncoding:NSUTF8StringEncoding];NSData*encodedPassword=[@"PASSWORD"dataUsingEncoding:NSUTF8StringEncoding];//ConstructaKeychainitemNSD

iphone - 将私钥导入钥匙串(keychain)在 iphone 中无法正常工作

我需要在将请求发送到后端服务器之前对其进行签名。但是私钥给了我。所以我需要导入它,然后用它来签名。我能够导入并登录,但该数据与我通过使用openssl签名获得的数据不同。我知道它做错了,因为当我导入公钥时,我也无法验证它。如果有一种方法可以避免导入钥匙串(keychain),那也很好。这几天一直在为此努力工作,这对我们来说是一项重要的工作。有人可以帮忙吗?-(SecKeyRef)getPrivateKey{//RSAKEYBELOWISDUMMY.key=@"-----BEGINRSAPRIVATEKEY-----\nORtMei3ImKI2ZKI636I4+uNCwFfZv9pyJz