SDL中文论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 4565|回复: 0
打印 上一主题 下一主题

[Xcode] 使用HealthKit

[复制链接]

149

主题

331

帖子

2445

积分

版主

Rank: 7Rank: 7Rank: 7

积分
2445
跳转到指定楼层
楼主
发表于 2016-9-5 13:04:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 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...]会失败。

一旦打开“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还是可行的,将来版本则须要测式。

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. };
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|丽谷软件|libsdl.cn

GMT+8, 2025-5-2 03:48 , Processed in 0.046652 second(s), 22 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表