首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >丢失HealthKit权利

丢失HealthKit权利
EN

Stack Overflow用户
提问于 2015-10-12 00:50:10
回答 2查看 4.5K关注 0票数 6

我正在尝试将HealthKit与我正在构建的应用程序集成,我似乎已经成功地为它添加了相应的权限。我创建并下载了一个具有适当应用ID的配置文件,Xcode功能选项卡中的HealthKit切换看起来很好:

但是,当我运行该应用程序时,我会得到以下错误:

代码语言:javascript
复制
HealthKit authorization denied!
Error Domain=com.apple.healthkit Code=4 "Missing com.apple.developer.healthkit entitlement." UserInfo={NSLocalizedDescription=Missing com.apple.developer.healthkit entitlement.}

这是一条奇怪的错误消息,因为Add the "HealthKit" entitlement to your App ID已经成功完成。

但是,一旦我得到该错误,选中的App权限将更改为:

但是在我的开发者帐户的App中,App显示HealthKit确实是启用的。

它在我的配置文件中也显示了同样的情况。

我只有一个应用程序ID和一个可供选择的配置文件,所以我不可能把它们搞混。

EN

回答 2

Stack Overflow用户

发布于 2015-12-09 23:42:46

现在,我在CloudKit权限方面有一个非常类似的问题:(在模拟器和设备中使用Debug工作,但在使用分发配置文件构建时就不行了,权限只是不会在最终存档中结束。)但通过验证..。很奇怪。

你有没有解决这个问题?

如果没有,有一些事情你仍然可以检查。

  1. 为了确保您的Xcode不混淆使用哪个配置文件-转到Preferences、-> Account、-> View、->,右键单击Finder中的概要文件->显示之一。现在删除该文件夹中的所有配置文件。我们这样做是为了使Xcode不会意外地使用错误的配置文件。
  2. 为了确保Xcode能够找到最最新的配置文件,我将再次重新生成配置文件,以防(删除和重新添加)使用新的名称。然后下载并双击。(通过Xcode下载一次可能会变小)
  3. 在这一点上,值得检查的是,供应配置文件实际上包含正确的权限密钥。您可以运行“security -i profile_name.mobileprovision”和“检查应享权利”部分。它应该包含'com.apple.developer.healthkit‘键
  4. 现在您可以转到Xcode并显式设置代码签名标识(类似于'iPhone Developer:.‘或者“iPhone分发:.”-取决于您的测试方式)。在此之后,您可以显式设置供应配置文件-- Xcode应该能够找到它并向您显示配置文件的名称--它应该与您在步骤2中使用的名称相匹配。确保为Debug/Release设置了正确的设置(同样取决于您的测试方式)。如果Xcode抱怨无法找到带有特定id的配置文件,请转到配置文件所在的文件夹中,并确保它在那里,文件名将以id开头,然后重新启动Xcode,它将在此之后工作。

如果您正在构建实际的档案或ipa,最好知道在这些包中有哪些权利(您可以打开它们并检查;存档:归档文件(右键单击,显示包内容) -> Products -> Applications -> app name.app (右击,显示包内容) ->存档-展开-实体.text(文本文件);ipa(类似地):登录到zip -> unzip -> Payload -> -> name.app ->归档-扩展-授权.

-编辑

我解决了我的问题。我认为我的项目文件处于一种奇怪的状态,因为我在过去的某个时候重命名了事物,并且必须手动更新项目文件中的一些条目。

我知道构建过程的哪一步出错了。正是ProcessProductPackaging步骤获得了原始的权限,并生成了最终用于签名的.xcent文件。

出于某种原因,对于发行版配置,Xcode并不符合我的权利文件的位置,而只是使用SDK中的默认模板,例如。/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.2.sdk/Entitlements.plist

我不知道确切的原因,但是对于Debug配置来说,事情似乎还不错。因此,我使用了我的版本配置,并创建了一个新的名称不同的一个,然后构建过程开始收集我的权利文件。从项目文件diff来看,事情以前不起作用的原因仍然不明显。

票数 4
EN

Stack Overflow用户

发布于 2016-01-08 11:39:57

在我的例子中,HealthKit集成了一段时间,一切都正常工作,有一天它刚刚停止工作,看起来与您的情况类似。

在尝试了任何可以在网上找到的直接/开箱即用的解决方案之后,当我看到这个answer时,我的搜索终于结束了。

只需重启,我的iPhone就解决了这个问题!

希望它也能治好你的病。祝好运

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33071726

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档