PebbleKit-Static 4.0.0

PebbleKit-Static 4.0.0

许可证 商业
发布最后发布2016年11月

Pebble Technology 维护。



  • Pebble Technology Corp.

PebbleKit iOS

欢迎使用 Pebble 的官方 iOS SDK!

示例

所有 Pebble SDK 示例均可在 GitHub 上找到

您还可以运行 pod try PebbleKit 直接进入一个简单的项目。

手动集成 PebbleKit

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

此外,由于 PebbleKit.framework 是针对设备和模拟器编译的,当您将应用程序上传到 Apple Music 图库时,可能会被拒绝。为了避免这种情况,您需要在提交之前从二进制文件中删除模拟器架构。您可以通过多种方式做到这一点,但我们将推荐使用 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 ("应用程序通过 CoreBluetooth 共享数据")
    • bluetooth-central(应用通过CoreBluetooth通信)

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

  • 使用蓝牙LE配件
  • 充当蓝牙LE配件

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

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

Xcode 文档

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

或者,从该文件夹手动安装文档集

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

将带有 PebbleKit 的 iOS 应用提交到苹果的 App Store

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

变更日志

4.0.0

  • 新增:支持 Pebble 2。
  • 新增:新的超类 PBSemanticVersion。现在 PBFirmwareVersionPBSemanticVersion 的子类型。
  • 新增:在 PBRemoteProtocolCapabilitiesFlags 中新增了值 SendTextSupportedNotificationsFilteringSupportedUnreadCoredumpSupportWeatherApp2
  • 新增:PBPebbleKitLogging 类型,以便自定义 PebbleKit 所使用的日志回调和日志级别。
  • 修改:删除关于 PBWatch 的过时文档。改进了关于 -[PBWatch friendlyDescription] 的文档。
  • 修改:清理 PBDataLoggingService 头文件。使用现代类型名称并改进可空性注释。
  • 修改:在 NSDictionary+Pebble.h 中添加了可空性注释。弃用了不带 pb_ 前缀的旧方法,并添加了带 pb_ 前缀的替代方法。
  • 修改:在 NSNumber+stdint.h 中添加了可空性注释。弃用了不带 pb_ 前缀的旧方法,并添加了带有 pb_ 的替代方法。
  • 修改:PBPebbleCentral 中用于设置默认日志级别的旧方法已被弃用,并改用 PBPebbleKitLogging 中的新方法。
  • 修改:与手表的通信(无论是通过经典方式还是通过LE方式)将不再在主线程中发生。回调仍然将在主线程中调用,许多方法仍然根据需要被记录为需要从主线程调用。我们可能在将来解除这些限制,但它们目前仍然有效。
  • 修改:清理了 Sports API,并记录并改进了 PBSportUpdate 辅助对象。
  • 修复:PebbleKit-Static 使用了正确的 Cocoapods 头文件路径。
  • 修复:PebbleKit-Static 已移除调试符号,这应该会避免打印某些警告。
  • 修复:Golf 和 Sports 在使用它们的 API 之前不需要手动添加它们的 UUID。
  • 修复:为 PBWatch (Golf)PBWatch (Sports) 添加了正确的可空性注释。
  • 修复:appMessagesPushUpdate:withUUID:onSent: 的签名不再声明名为 __nullableerror 的不可为空的 NSError *
  • 修复:存在导致与手表通信不可能的竞争条件。
  • 修复:-[PBFirmwareVersion compare:] 对于未来发布的固件报告了错误的结果。
  • 修复:通过蓝牙LE连接应更可靠。
  • 修复:不要尝试连接非Pebble的设备。
  • 修复:不要尝试连接已连接到其他移动设备的Pebble设备。
  • 修复:为 PBVersionInfoCompletionBlock 添加了正确的null性注解。
  • 修复:避免在重新连接到蓝牙LE设备时崩溃。
  • 弃用:弃用 PBFirmwareVersion,包括 osmajorminor,以及便利初始化器 firmwareVersionWithOS:major:minor:suffix:commitHash:timestamp:。请使用 majorVersionminorVersionrevisionVersionfirmwareVersionWithMajor:minor:revision:suffix:commitHash:timestamp:
  • 移除:蓝牙经典通信支持。只可用蓝牙LE。所有3.x或更高版本的设备都应能使用蓝牙LE,包括原始的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时,数据日志服务现在是延迟创建的。
  • 更改:当您设置后台模式时,数据日志不会取消声明服务器。
  • 更改:将DeploymentTarget降低到7.0。
  • 修复:数据日志轮询不会在应用启动时触发。
  • 修复:appMessagesRemoveUpdateHandler 不按预期工作。
  • 弃用:dataLoggingService.pollForData - 请使用 pollForDataFromWatch: 代替。
  • 弃用:central.dataLoggingService - 请使用 dataLoggingServiceForAppUUID: 代替。

3.0.0

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

2.4

  • 变更:现在在GitHub和Cocoapods上自动发布。

2.3

  • 移除:从PebbleKit中移除了蓝牙LE代码。
  • 变更:改进数据日志以帮助调试问题。
  • 移除:PBWatch+PhoneVersionPBWatch+Polling
  • 修复:PBWatch+Version 报告正确的版本。
  • 修复:在调用 -[PBNumber description] 时崩溃。
  • 变更:现在使用 “HeaderName.h” 格式导入(而不是 <PebbleKit/HeaderName.h>)。
  • 修复:在手机和手表之间发送数据时的竞态条件。
  • 修复:使 PebbleKit.podspec 通过最新的CocoaPodlinter。
  • 变更:为了保证在您的应用程序中使用CocoaLumberjack时不会发生冲突,内部使用的日志类现在使用了前缀。
  • 变更:使现有的日志更加详细。

2.2

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

2.1

  • 变更:提高了数据日志以帮助调试问题的功能。