PebbleKit 4.0.0

PebbleKit 4.0.0

许可协议 商业版
发布最新版本2016年11月

Heiko BehrensPebble TechnologyMarcel Jackwerth维护。



PebbleKit 4.0.0

  • Pebble Technology Corp.

PebbleKit iOS

欢迎使用Pebble官方iOS SDK!

示例

所有的Pebble SDK示例可以在GitHub上找到:https://github.com/pebble-examples/pebblekit-ios-demos.

您也可以直接运行pod try PebbleKit快速进入一个简单项目。

手动集成PebbleKit

  • PebbleKit.framework复制到项目文件夹中的某个位置。
  • 在您的应用程序目标“通用”设置选项卡中,在“链接的框架和库”部分,拖放PebbleKit.framework
  • 链接CoreBluetooth.framework
  • -ObjC链接器标志添加到项目的构建设置中。

此外,由于PebbleKit.framework是为设备和模拟器编译的,当您将应用程序上传到iTunes Connect时,可能会被拒绝。为了避免这种情况,在提交之前,您需要从二进制文件中去除模拟器架构。您可以通过多种方式完成此操作,但我们建议使用Carthage以简化流程。

  • 安装Carthage或确保其已更新
  • 在您的应用程序目标的“构建阶段”设置选项卡中,点击“+”图标,并选择“新建运行脚本阶段”。创建一个包含以下内容的运行脚本

    /usr/local/bin/carthage copy-frameworks

    并将框架的路径添加到“输入文件”下,例如

    $(SRCROOT)/path/to/PebbleKit.framework
    

使用PebbleKit-Static集成

PebbleKit-Static提供了对iOS 7的兼容性。我们推荐使用PebbleKit,但如果您需要为旧版本的iOS提供应用程序版本,您仍然可以使用它。

您可以使用Cocoapods或手动使用PebbleKit-Static。由于Carthage仅支持动态框架,因此PebbleKit-Static对Carthage不可用。

此外,在每个使用#import <PebbleKit/PebbleKit.h>的文档点中,您应使用#import <PebbleKit-Static/PebbleKit.h>代替。

手动

  • PebbleKit-Static.framework复制到项目文件夹的某个位置。
  • 在您的应用程序目标的“通用”设置选项卡中,在“链接的框架和库”部分,拖放PebbleKit-Static.framework
  • 链接CoreBluetooth.framework
  • -ObjC链接器标志添加到项目的构建设置中。

配置Info.plist和功能

如果您想在后台与Pebble进行通信,则需要将背景模式添加到应用程序目标的Info.plist

  • 将以下条目添加到UIBackgroundModes ("所需的后台模式")数组中
    • bluetooth-peripheral ("App shares data using CoreBluetooth")
    • bluetooth-central ("App communicates using CoreBluetooth")

如果使用后台模式,也需要在Xcode中更新目标的Capabilities。启用后台模式并选择

  • 使用蓝牙LE配件
  • 作为蓝牙LE配件使用

如果您在Xcode 8或更高版本中编译,则需要此外添加以下密钥Info.plist(并且建议您在旧版本中也这样做)

  • NSBluetoothPeripheralUsageDescription(“隐私 - 蓝牙外围设备使用说明”)

Xcode文档

您可以在网上浏览最新的文档(如果您点击右上角的图标,还可以安装离线文档集)

或者,您可以手动从本文件夹中安装文档集

  • 包含所有公共API文档的Xcode文档集
  • PebbleKit-ios.docset内容复制到~/Library/Developer/Shared/Documentation/DocSets
  • 重新启动Xcode。现在将从帮助 > 文档和API参考中提供文档

将带有PebbleKit的iOS应用提交到Apple应用商店

为了使Pebble与iPhone协同工作,Pebble是iPhone配件计划的一部分(硬件配件与iOS应用交互的要求)。不幸的是,这也意味着如果您使用PebbleKit构建iOS应用,Pebble需要在您将其上传到App Store之前将您的iOS应用列入白名单。如果您已经完成Pebble应用并且想了解如何在App Store提供该应用,请访问白名单指南

变更日志

4.0.0

  • 添加:支持Pebble 2。
  • 添加:新超类PBSemanticVersion。现在PBFirmwareVersionPBSemanticVersion的子类型。
  • PBRemoteProtocolCapabilitiesFlags中添加了新的值SendTextSupportedNotificationsFilteringSupportedUnreadCoredumpSupportWeatherApp2
  • 添加:PBPebbleKitLogging类型,用于自定义PebbleKit和日志级别的日志回调。
  • 更改:删除了过时的PBWatch文档。改进了关于-[PBWatch friendlyDescription]的文档。
  • 更改:清理了PBDataLoggingService头文件。使用现代类型名并改进nullability注释。
  • 更改:在添加nullability注释到NSDictionary+Pebble.h的同时弃用了不带pb_前缀的老方法,并添加了带有pb_前缀的替代方法。
  • 更改:在添加nullability注释到NSNumber+stdint.h的同时弃用了不带pb_前缀的老方法,并添加了带pb_的方法。
  • 更改:在PBPebbleCentral中弃用了设置默认日志级别的方法,转而使用PBPebbleKitLogging中的新方法。
  • 更改:与手表的通信(通过经典和通过LE)将不再在主线程中发生。回调仍将在主线程中被调用,许多方法仍然根据需要被记录为在主线程中调用。我们可能在将来取消这些限制,但它们仍然有效。
  • 更改:清理运动API,并记录并改进PBSportUpdate辅助对象。
  • 修复:PebbleKit-Static使用正确的头文件路径用于Cocoapods。
  • 修复:从PebbleKit-Static中去除调试符号,这应该会避免打印一些警告。
  • 修复:高尔夫和运动应用在使用它们的API之前无需手动添加UUID。
  • 修复:为 PBWatch (Golf)PBWatch (Sports) 添加了正确的nullability注释。
  • 修复:函数签名 appMessagesPushUpdate:withUUID:onSent: 不再声明名为 __nullableerror 的不可空 NSError *
  • 修复:一个导致与手表通信不可能的竞争条件。
  • 修复:函数 -[PBFirmwareVersion compare:] 对发布于遥远的未来的固件报告了错误的结果。
  • 修复:通过蓝牙低功耗连接应更加可靠。
  • 修复:不要尝试连接不是Pebble的设备。
  • 修复:不要尝试连接到已连接到其他移动设备的Pebble设备。
  • 修复:为 PBVersionInfoCompletionBlock 添加了正确的nullability注释。
  • 修复:重新连接蓝牙低功耗设备时避免崩溃。
  • 弃用:弃用 PBFirmwareVersionosmajorminor,以及便利初始化器 firmwareVersionWithOS:major:minor:suffix:commitHash:timestamp:。使用 majorVersionminorVersionrevisionVersionfirmwareVersionWithMajor:minor:revision:suffix:commitHash:timestamp: 代替。
  • 移除:支持蓝牙经典通信。现在只提供蓝牙低能耗(LE)。所有3.x或更高版本的设备都应能够使用蓝牙低能耗,包括原始Pebble和Pebble Steel。这应该会使第三方应用之间的通信变得更好。

3.1.1

  • 修复:现在 -[PBPebbleCentral lastConnectedWatch] 正确标记为 nullable
  • 修复:避免在某些不常见场景中手表未能连接到手机。
  • 修复:从Objective-C++中使用时,-[PBWatch isNew] 属性没有别名 new 以避免C++保留关键字的问题。
  • 修复:已将位码添加到动态框架中,因此希望使用位码的应用可以正确提交。

3.1.0

PebbleKit现在是 动态 框架。

如果您想支持iOS 7.x,请将 pod 'PebbleKit-Static' 添加到您的 Podfile 中。

  • 添加:添加了针对Pebble 2.x / iOS 9问题的解决方案,该问题导致手表中的消息无法到达。
  • 添加:在多应用设置中,数据记录现在工作得更好。
  • 更改:当您第一次尝试使用API时,现在会懒惰地创建数据记录服务。
  • 更改:当您设置了后台模式时,数据记录不会取消宣布服务器。
  • 更改:将部署目标降级到7.0。
  • 修复:数据记录轮询不会在应用启动时触发。
  • 修复:appMessagesRemoveUpdateHandler 未按预期工作。
  • 弃用:dataLoggingService.pollForData - 使用 pollForDataFromWatch: 代替。
  • 弃用:central.dataLoggingService - 使用 dataLoggingServiceForAppUUID: 代替。

3.0.0

  • 添加:支持 Pebble Time Round
  • 添加:支持8K应用消息。
  • 添加:支持Swift。
  • 添加:支持位码。
  • 更改:所有 appUUID 属性现在都是 NSUUID 而不是 NSData
  • 更改:在一旦设置了代理和appUUID后,你必须在收到任何连接事件之前运行中央:[[PBPebbleCentral defaultCentral] run]
  • 提示:如果您的应用应在后台运行,请将 bluetooth-peripheralbluetooth-central 添加到您的 UIBackgroundModes 中。
  • 提示:不再需要在应用启动时检查 lastConnectedWatch.isConnected - 只需等待调用 run 后的事件。
  • 提示:我们已经移除了 PebbleVendor.framework。如果您需要它,请保留它。否则取消它以减少应用的大小。

2.4

2.3

  • 移除:从PebbleKit移除蓝牙低能耗(LE)代码。
  • 更改:改进数据记录以帮助排除问题。
  • 移除:PBWatch+PhoneVersionPBWatch+Polling
  • 修复:PBWatch+Version 报告正确的版本。
  • 修复:调用 -[PBNumber description] 时崩溃。
  • 更改:现在导入使用 “HeaderName.h” 格式(而不是 <PebbleKit/HeaderName.h>)。
  • 修复:修复了手机和手表之间发送数据时的竞争条件
  • 修复:使 PebbleKit.podspec 能够通过最新的 CocoaPod 检查器
  • 修改:对内部使用的日志类进行前缀处理,以解决在您的应用中使用 CocoaLumberjack 时的冲突
  • 修改:使现有的日志描述性更强

2.2

  • 移除:PBWatch+PhoneVersion
  • 修复:PBWatch+Version 报告了错误的版本
  • 修复:调用 -[PBNumber description] 时崩溃。

2.1

  • 修改:改进数据日志以提高问题调试能力