尝试从应用扩展程序访问钥匙串时,获取“无钥匙串可用”错误

时间:2016-07-24 19:11:07

标签: ios swift exception keychain

我正在制作IOS自定义键盘扩展程序。默认情况下,键盘的功能有限,但当用户从主父应用程序购买完整版本时,键盘会解锁缺少的部分。

要检查用户是否购买了应用,我尝试使用this library在IOS钥匙串中存储Bool

    let IAPKeychain = Keychain(service: "com.roymunsonstudios.CopypastaKeyboard")

    var purchase: Bool = true
    let purchaseData = NSData(bytes: &purchase, length: sizeof(Bool))

    try! IAPKeychain.set(purchaseData, key: identifier)

然后我尝试使用viewDidLoad方法从我的键盘扩展程序访问钥匙串,如下所示:

let IAPFetch = Keychain(service: "com.roymunsonstudios.CopypastaKeyboard.Copypasta")
print("Just finished creating keychain instance")
do {
        let purchaseStatusData = try IAPFetch.getData("com.roymunsonstudios.CopypastaKeyboard.FullVersionKeyboard")
}
catch is ErrorType {
print("Error fetching data")
}

但是,每当我尝试这样做时,我都会收到以下错误:

OSStatus error:[-25291] No keychain is available. You may need to restart your computer.

我不确定是什么问题。我在扩展程序和主应用程序中打开了钥匙串共享,并且每个目标中都有相同的钥匙串组名称(钥匙串组名称是扩展程序的包ID)。

为什么会出现此错误?

0 个答案:

没有答案