草庐IT

ios - 钥匙串(keychain):项目报告为 errSecItemNotFound,但在添加时收到 errSecDuplicateItem

这个问题困扰我好久了,希望有大侠能指点一下。本质上,我有一小部分的用户无法将项目保存/更新到钥匙串(keychain)。有问题的控制流程如下:我们使用SecItemCopyMatching检查项目是否存在。这将返回错误代码errSecItemNotFound然后我们尝试通过SecItemAdd添加项目,但这随后返回errSecDuplicateItem。因此,我们有一些用户根本无法更新钥匙串(keychain)项目的子集,要求他们恢复设备以清除钥匙串(keychain)。这显然是一个NotAcceptable解决方法。以前似乎对他们有用,但现在进入了这个不可更新的循环。经过研究,我发现

ios - iOS 钥匙串(keychain)中的项目会在应用程序卸载并重新安装后继续存在吗?

我正在寻找有关iOS钥匙串(keychain)项的文档。我的具体问题是钥匙串(keychain)项目是否会在应用程序卸载和重新安装周期中继续存在。它似乎从iOS4(甚至可能是iOS3)开始就以这种方式工作,但我找不到任何来自Apple的文档说明这实际上应该以这种方式工作。我想弄清楚的是,我是否可以相信(不是“希望”或“猜测”)钥匙串(keychain)中的项目会在应用程序卸载后继续存在。编辑:我意识到这个问题有点不清楚,正如Daij-Djan所指出的那样。我正在寻找的是支持众所周知的行为的官方文档。更新2017-04-04:请参阅下面我的回答,iOS10.3测试版中的行为更改。它在iO

ios - 拒绝 Codesign 访问钥匙串(keychain)后,Xcode 不允许为设备构建

我是iOS开发的新手,今天我尝试在我的iPhone上检查我的应用程序并尝试为该设备构建它。因此,当我点击构建时,它会要求输入我的密码以让codesign访问钥匙串(keychain)。但经过几次尝试,我不小心点击了拒绝按钮。然后我再次尝试为设备构建我的应用程序,现在它说,Swiftsodlibtoolerror,taskfailedwithexit1signal0当我检查该错误时,它说,unknownerror-1=fffffffffffffffferror:Taskfailedwithexit1signal0{/usr/bin/codesign'--force''--sign''A6

iphone - 钥匙串(keychain)警告 “System Roots” 钥匙串(keychain)无法修改

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。这个问题似乎不是关于aspecificprogrammingproblem,asoftwarealgorithm,orsoftwaretoolsprimarilyusedbyprogrammers的.如果您认为这个问题是关于anotherStackExchangesite的主题,您可以发表评论,说明问题可能在哪里得到解答。关闭去年。社区在去年审查了是否重新打开这个问题并让它关闭:原始关闭原因未解决Improvethisquestion当我双击证书时,出现以下错误“无法修改“系统根”钥匙串(keycha

iOS 钥匙串(keychain)服务 : only specific values allowed for kSecAttrGeneric Key?

我正在尝试使用此Apple示例代码中提供的KeychainWrapper类:https://developer.apple.com/library/content/samplecode/GenericKeychain/在示例应用程序中,该类具有以以下形式开头的init方法:-(id)initWithIdentifier:(NSString*)identifieraccessGroup:(NSString*)accessGroup;{if(self=[superinit]){//BeginKeychainsearchsetup.ThegenericPasswordQueryleverag

ios - 测试钥匙串(keychain) - OSStatus 错误 -34018

我正在尝试使用Xcode上的基本SenTest框架测试读取和更改钥匙串(keychain)的代码。该代码在设备上运行良好,但是当我开始测试时,每次我想使用SecItemDelete/SecItemAdd/etc触摸钥匙串(keychain)时,我都会遇到这些错误。操作无法完成。(OSStatus错误-34018-客户端既没有应用程序标识符也没有钥匙串(keychain)访问组权利)我为构建目标和测试目标匹配了通配符配置文件(iOSTeamProvisioningProfile:*)。这些(未经证实的)堆栈溢出答案:ReadfromkeychainresultsinerrSecItemN

ios - 重置设备上的钥匙串(keychain)

我正在设备上的应用程序中测试登录流程(使用KeychainItemWrapper)。如何为我的应用重置/删除钥匙串(keychain)?在模拟器上,我通过点击iOSSimulator->ResetContentandSettings...来完成。 最佳答案 钥匙串(keychain)项位于iOS沙箱中,用户无权删除不需要的钥匙串(keychain)项。这些只能通过API访问。KeychainItemWrapper*keychainItem=[[KeychainItemWrapperalloc]initWithIdentifier:[

ios - 使用 Jenkins/Hudson 作为 iOS 和 Mac 开发的持续集成时,钥匙串(keychain)中缺少证书和 key

我正在尝试为iOS改进HudsonCI,并在系统启动后立即启动Hudson。为此,我使用了以下启动脚本:LabelHudsonCIProgramArguments/usr/bin/java-jar/Users/user/Hudson/hudson.warRunAtLoadUserNameuser这工作正常,但是当由Hudson启动的xcodebuild尝试签署一个应用程序时,它失败了,因为它无法在钥匙串(keychain)中找到正确的key/证书。但是key/证书对在那里,因为如果我从命令行启动Hudson,它工作正常。你知道为什么会这样吗? 最佳答案

iphone - 在应用程序钥匙串(keychain)中存储 In App Purchase 收据

我以前从未在AppPurchase中实现过,所以我使用了MKStoreKit包装器并有一个有效的实现。MKStoreKit将所有收据作为BOOL保存在UserDefaults.plist中,因此盗版者很容易以“破解”状态分发应用内购买。完成首次购买后,即可分发bundle并重新创建.plist以启用IAP解锁。我想扩展MKStoreKit以在iOS钥匙串(keychain)中创建应用内购买验证数据。是否有任何缺点或可能的原因导致付费用户失败、不可靠或任何其他原因导致这样做总体上是个坏主意?我知道盗版是不可避免的,我绝对不想疏远付费用户,但我觉得UserDefaults.plist是一种

ios - 在 iOS 中将电子邮件/密码保存到钥匙串(keychain)

我是iOS开发的新手,如果这是一个新手问题,请原谅我。我的应用程序有一个简单的身份验证机制,它接受用户的电子邮件地址和密码。我还有一个开关,上面写着“记住我”。如果用户打开该开关,我想保留他们的电子邮件/密码,以便将来可以自动填充这些字段。我已经将它保存到plist文件,但我知道这不是最好的主意,因为密码未加密。我找到了一些保存到钥匙串(keychain)的示例代码,但老实说,我有点迷路了。对于下面的函数,我不确定如何调用它以及如何修改它以保存电子邮件地址。我猜调用它会是:saveString(@"passwordgoeshere");感谢您的帮助!!!+(void)saveStrin