我正在制作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)。
为什么会出现此错误?