ios - 无法在 Xcode 中启用健康记录功能

标签 ios xcode healthkit

我将 HealthKit 设置为 official manual说要读取用户的健康记录。我启用了它并通过了所有三个步骤使其工作,但不知何故,“健康记录”功能被禁用,我无法检查它。结果,应用程序崩溃,说它无法验证对健康记录的请求。

我该如何启用它?

带有 iOS 12 SDK 的 Xcode 版本 10.0 beta 6 (10L232m)。

enter image description here

还有一个授权文件:

enter image description here

帐号设定:

enter image description here

我的代码:

RCT_EXPORT_METHOD(requestAccess:(RCTResponseSenderBlock)callback) {
  NSNull * null = [NSNull null];

  NSSet * recordTypes = [self recordTypes];

  HKHealthStore *store = [HKHealthStore new];
  [store requestAuthorizationToShareTypes:nil
                                readTypes:recordTypes
                               completion:^void (BOOL success, NSError * _Nullable error) {

    if (success) {
      callback(@[null, @true]);

崩溃报告
Exception 'Authorization to read the following types is disallowed: HKClinicalTypeIdentifierMedicationRecord' was thrown while invoking requestAccess on target AppHealthRecords with params (
    259
)
callstack: (
    0   CoreFoundation                      0x000000010709429b __exceptionPreprocess + 331
    1   libobjc.A.dylib                     0x0000000105777735 objc_exception_throw + 48
    2   CoreFoundation                      0x00000001070940f5 +[NSException raise:format:] + 197
    3   HealthKit                           0x0000000104dc7ec0 -[HKHealthStore _throwIfAuthorizationDisallowedForSharing:types:] + 540
    4   HealthKit                           0x0000000104dc6912 -[HKHealthStore _validateAuthorizationRequestWithShareTypes:readTypes:] + 224
    5   HealthKit                           0x0000000104dc6a82 -[HKHealthStore requestAuthorizationToShareTypes:readTypes:shouldPrompt:completion:] + 321
    6   HealthKit                           0x0000000104dc680f -[HKHealthStore requestAuthorizationToShareTypes:readTypes:completion:] + 77
    7   app                                 0x0000000104574c43 -[AppHealthRecords requestAccess:] + 307
    8   CoreFoundation                      0x000000010709b11c __invoking___ + 140
    9   CoreFoundation                      0x00000001070985b5 -[NSInvocation invoke] + 325
    10  CoreFoundation                      0x0000000107098a06 -[NSInvocation invokeWithTarget:] + 54
    11  app                                 0x000000010461ec6a -[RCTModuleMethod invokeWithBridge:module:arguments:] + 2810
    12  app                                 0x00000001046d5dd6 _ZN8facebook5reactL11invokeInnerEP9RCTBridgeP13RCTModuleDatajRKN5folly7dynamicE + 790
    13  app                                 0x00000001046d58ef _ZZN8facebook5react15RCTNativeModule6invokeEjON5folly7dynamicEiENK3$_0clEv + 127
    14  app                                 0x00000001046d5869 ___ZN8facebook5react15RCTNativeModule6invokeEjON5folly7dynamicEi_block_invoke + 25
    15  libdispatch.dylib                   0x00000001099c251d _dispatch_call_block_and_release + 12
    16  libdispatch.dylib                   0x00000001099c3587 _dispatch_client_callout + 8
    17  libdispatch.dylib                   0x00000001099ca058 _dispatch_lane_serial_drain + 720
    18  libdispatch.dylib                   0x00000001099cab9b _dispatch_lane_invoke + 401
    19  libdispatch.dylib                   0x00000001099d39c6 _dispatch_workloop_worker_thread + 645
    20  libsystem_pthread.dylib             0x0000000109d48fd2 _pthread_wqthread + 980
    21  libsystem_pthread.dylib             0x0000000109d48be9 start_wqthread + 13
)

最佳答案

您需要添加 Health Records您的权利文件的 key 。
并确保为 NSHealthClinicalHealthRecordsShareUsageDescription 添加一个条目键入 Info.plist权利截图:
Entitlements screenshot

关于ios - 无法在 Xcode 中启用健康记录功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52312980/

相关文章:

objective-c - 如何使用 JSON 解析一个对象中的 5 个数组

ios - 代码设计错误 - SecKey API 返回 : -67671

ios - iphone 再次拒绝启动请求

swift - 运行 HKStatisticsCollectionQuery 示例代码时出现 "ambiguous use of ' 组件错误

android - 健身数据 : merging multiple sources data

ios - 如何从 API 发送错误

ios - 带有图像的 MKPinAnnotationView 内的 UIButton

ios - iOS 中的水平约束

ios - 一般如何使用 iOS 14 单元格内容配置?

swift - WatchOS 从 Activity 应用获取信息