【发布时间】:2016-03-30 12:05:03
【问题描述】:
我一直无法让 HealthKit requestAuthorization 对话框出现。对于具有不同操作系统版本和不同安装方法的两部不同手机,情况就是如此(见下文)。 requestAuthorization 代码为标准样板代码,如:
HKCharacteristicType *genderType = [HKObjectType characteristicTypeForIdentifier:HKCharacteristicTypeIdentifierBiologicalSex];
[self.healthStore requestAuthorizationToShareTypes:nil readTypes:[NSSet setWithObjects: genderType, nil] completion:^(BOOL success, NSError *error) {
NSLog(@"requestAuthorization completion block");
}];
我尝试了一个仅使用该代码的新应用,尝试了 requestAuthorization 方法调用的不同参数,并尝试以多种不同方式重置我们的系统:应用卸载、重置设置、擦除手机内容和使用现有设置部分备份;使用完整备份擦除手机内容和设置,擦除内容和设置并将手机作为新手机启动。尝试了多种不同的 readTypes 和 shareTypes。每次在新的应用安装上调用 requestAuthorization 时,都会出现以下错误代码:
“发生错误 = 错误域=com.apple.healthkit 代码=4”缺失 com.apple.developer.healthkit 权利。” UserInfo=0x7fa748534b00 {NSLocalizedDescription=缺少 com.apple.developer.healthkit 权利。}"
但是,HealthKit 权利在 xcode 上的 Capabilities 以及 Apple Developer 上的 App ID 中的 Capabilities 中设置:证书、标识符和配置文件。
- 问题: 如何解决此问题,以便出现 requestAuthorization 对话框?手机进入持续出现此错误的状态的可能原因是什么?
- 使用的手机: iPhone 6、iPhone 6 Plus - 使用的操作系统版本: iOS 9.0 / 9.0.2 / 9.1 / 9.2 - 将应用加载到手机上的方法: iOS App Store、Watch App App Store、TestFlight、xcode - 这似乎没有被破坏的情况:我们用户的(非开发)手机通过 App Store 安装。
【问题讨论】: