SDL中文论坛

标题: 使用HealthKit [打印本页]

作者: ancientcc    时间: 2016-9-5 13:04
标题: 使用HealthKit
本帖最后由 ancientcc 于 2016-9-5 13:08 编辑

如何让app使用HealthKit
1、进入苹果开发者网页,让要使用的appid使能“HealthKit”。
2、在app项目的“Capabilities”页,打开“HealthKit”。
3、进入Info.plist,检查“Required device capabilities”,如果出现“healthkit”,删除。(为让没有Health的iOS也可运行此app,像iOS7。)

“Capabilities”页中的“HealthKit”
对healthkit,XCode7.3.1有了个变化:若不在“Capabilities”页打开“HealthKit”,[healthStore requestAuthorizationToShareTypes:writeDataTypes...]会失败。
(, 下载次数: 2091)
一旦打开“HealthKit”,它会自动生成sesame/sesame.entitlements。
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
  3. <plist version="1.0">
  4. <dict>
  5.         <key>com.apple.developer.healthkit</key>
  6.         <true/>
  7. </dict>
  8. </plist>
复制代码

只是看这内容,该文件就是向Info.plist增加healthkit。由于增加了这一个文件,那就要涉及到改project.pbxproj。我在想如果直接在Info.plist增加healthkit,是否一样能解决问题?————结果在Info.plist可增加的条目中没找到和healthkit相关的,如果用文本编辑器直接增加,我怕即使这版成功,也有可能和将来XCode不兼容,那还不如按XCode要求,使用单独sesame.entitlements文件。

但察看Info.plist发现,一旦在“Capabilities”页打开“HealthKit”,会造成Info.plist的“Required device capabilities”增加“healthkit”,该项会要求只有安装了Health的iOS才能安装此应用。为让没有Health的iOS也可运行此app,像iOS7,那需要删除它。删除它,至少Xcode7.3.1还是可行的,将来版本则须要测式。
(, 下载次数: 1874)
sesame.entitlements对提取app影响
新建一个叫sesame.entitlements的文件。主文件名是app名。
project.pbxproj需要包含sesame.entitlements。
project.pbxproj除了要包含sesame.entitlements,还要增加像CODE_SIGN_ENTITLEMENTS,具体可参考sesame的工程文件。
  1. CODE_SIGN_ENTITLEMENTS = sesame/sesame.entitlements;
  2. ......
  3. SystemCapabilities = {
  4.         com.apple.HealthKit = {
  5.         enabled = 1;
  6.         };
  7. };
复制代码





欢迎光临 SDL中文论坛 (http://www.libsdl.cn/bbs/) Powered by Discuz! X3.3