欢迎使用Pebble官方iOS SDK!
所有的Pebble SDK示例可以在GitHub上找到:https://github.com/pebble-examples/pebblekit-ios-demos.
您也可以直接运行pod try PebbleKit
快速进入一个简单项目。
PebbleKit.framework
复制到项目文件夹中的某个位置。PebbleKit.framework
。CoreBluetooth.framework
。此外,由于PebbleKit.framework
是为设备和模拟器编译的,当您将应用程序上传到iTunes Connect时,可能会被拒绝。为了避免这种情况,在提交之前,您需要从二进制文件中去除模拟器架构。您可以通过多种方式完成此操作,但我们建议使用Carthage以简化流程。
在您的应用程序目标的“构建阶段”设置选项卡中,点击“+”图标,并选择“新建运行脚本阶段”。创建一个包含以下内容的运行脚本
/usr/local/bin/carthage copy-frameworks
并将框架的路径添加到“输入文件”下,例如
$(SRCROOT)/path/to/PebbleKit.framework
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
。Info.plist
和功能如果您想在后台与Pebble进行通信,则需要将背景模式添加到应用程序目标的Info.plist
。
UIBackgroundModes
("所需的后台模式")数组中bluetooth-peripheral
("App shares data using CoreBluetooth")bluetooth-central
("App communicates using CoreBluetooth")如果使用后台模式,也需要在Xcode中更新目标的Capabilities
。启用后台模式
并选择
如果您在Xcode 8或更高版本中编译,则需要此外添加以下密钥Info.plist
(并且建议您在旧版本中也这样做)
NSBluetoothPeripheralUsageDescription
(“隐私 - 蓝牙外围设备使用说明”)您可以在网上浏览最新的文档(如果您点击右上角的图标,还可以安装离线文档集)。
或者,您可以手动从本文件夹中安装文档集
PebbleKit-ios.docset
内容复制到~/Library/Developer/Shared/Documentation/DocSets
帮助 > 文档和API参考
中提供文档为了使Pebble与iPhone协同工作,Pebble是iPhone配件计划的一部分(硬件配件与iOS应用交互的要求)。不幸的是,这也意味着如果您使用PebbleKit构建iOS应用,Pebble需要在您将其上传到App Store之前将您的iOS应用列入白名单。如果您已经完成Pebble应用并且想了解如何在App Store提供该应用,请访问白名单指南
PBSemanticVersion
。现在PBFirmwareVersion
是PBSemanticVersion
的子类型。PBRemoteProtocolCapabilitiesFlags
中添加了新的值SendTextSupported
、NotificationsFilteringSupported
、UnreadCoredumpSupport
和WeatherApp2
。PBPebbleKitLogging
类型,用于自定义PebbleKit和日志级别的日志回调。PBWatch
文档。改进了关于-[PBWatch friendlyDescription]
的文档。PBDataLoggingService
头文件。使用现代类型名并改进nullability注释。NSDictionary+Pebble.h
的同时弃用了不带pb_
前缀的老方法,并添加了带有pb_
前缀的替代方法。NSNumber+stdint.h
的同时弃用了不带pb_
前缀的老方法,并添加了带pb_
的方法。PBPebbleCentral
中弃用了设置默认日志级别的方法,转而使用PBPebbleKitLogging
中的新方法。PBSportUpdate
辅助对象。PBWatch (Golf)
和 PBWatch (Sports)
添加了正确的nullability注释。appMessagesPushUpdate:withUUID:onSent:
不再声明名为 __nullableerror
的不可空 NSError *
。-[PBFirmwareVersion compare:]
对发布于遥远的未来的固件报告了错误的结果。PBVersionInfoCompletionBlock
添加了正确的nullability注释。PBFirmwareVersion
的 os
、major
和 minor
,以及便利初始化器 firmwareVersionWithOS:major:minor:suffix:commitHash:timestamp:
。使用 majorVersion
、minorVersion
、revisionVersion
和 firmwareVersionWithMajor:minor:revision:suffix:commitHash:timestamp:
代替。-[PBPebbleCentral lastConnectedWatch]
正确标记为 nullable
。-[PBWatch isNew]
属性没有别名 new
以避免C++保留关键字的问题。PebbleKit现在是 动态 框架。
如果您想支持iOS 7.x
,请将 pod 'PebbleKit-Static'
添加到您的 Podfile
中。
appMessagesRemoveUpdateHandler
未按预期工作。dataLoggingService.pollForData
- 使用 pollForDataFromWatch:
代替。central.dataLoggingService
- 使用 dataLoggingServiceForAppUUID:
代替。appUUID
属性现在都是 NSUUID
而不是 NSData
。[[PBPebbleCentral defaultCentral] run]
bluetooth-peripheral
和 bluetooth-central
添加到您的 UIBackgroundModes
中。lastConnectedWatch.isConnected
- 只需等待调用 run
后的事件。PebbleVendor.framework
。如果您需要它,请保留它。否则取消它以减少应用的大小。PBWatch+PhoneVersion
和 PBWatch+Polling
。PBWatch+Version
报告正确的版本。-[PBNumber description]
时崩溃。“HeaderName.h”
格式(而不是 <PebbleKit/HeaderName.h>
)。PebbleKit.podspec
能够通过最新的 CocoaPod 检查器PBWatch+PhoneVersion
PBWatch+Version
报告了错误的版本-[PBNumber description]
时崩溃。