Apple Watch 1.0 开发介绍 1.2 简介 配置Xcode工程
WatchKit app需要一个现有的iOS app。在iOS app工程中,添加一个新的WatchKit app target,它包含了WatchKit app和WatchKit extension中需要的资源。他们会和iOS app一起发布到appstore。
WatchKit app target提供了初始创建WatchKit app,glances,以及自定义通知界面的的所有资源。iOS模拟器可以用来测试所有的界面和行为。
注意:WatchKit开发需要iOS 8.2或更新的SDK。
添加WatchKit App到iOS工程
要创建WatchKit app必须要有一个iOS app。WatchKit app是在Xcode工程的不同的target中实现的,打包的时候和iOS app打在一起。
1.在Xcode中,打开iOS app。
2. 选择File->New->Target,却换到Apple Watch那一页。
3. 选择WatchKit App,点 Next。
4. 如果计划实现glance活着自定义通知界面,选择合适的复选框。
对于通知界面,建议选择Include Notification Scene复选框,就算目前没有计划实现它。选择那个复选框会添加调试通知界面的文件到工程。如果不选,以后需要手动创建那些文件。
5. 点完成
Xcode会配置WatchKit app和WatchKit extension的target并且会添加所需的文件到工程。Bundle ID会根据iOS app的bundle ID自动配置。三个包的基准ID(前缀)必须要匹配。如果改变了iOS app的bundle ID,必须要对应的修改其他的bundle ID。
App Target 结构
添加WatchKit App target到工程同时也添加了两个新的可执行文件并且更新了工程的编译依赖关系。编译iOS app会编译三个可执行文件(iOS app, WatchKit extension以及WatchKit app)然后把它们打包到一起。Xcode也添加了一个build scheme来只编译调试WatchKit app。
下图展示了iOS app和WatchKit。WatchKit app是打包在WatchKit extension中的,WatchKit extension打包在iOSapp中。当用户在iPhone上安装iOS app时,如果有匹配的Apple Watch,系统会推荐用户安装Watch Kit app。iOS会自动处理安装过程。

编译,运行,调试
创建WatchKit app时,Xcode会自动创建一个build scheme来运行和调试WatchKit app。使用这个scheme来在iOS模拟器或者设备上运行app。
对于包含glance或者自定义通知界面的app,需要配置其他对应的scheme来测试这些界面。
为glances和通知配置自定义的scheme
1.选择现有的WatchKit app scheme。
2.在scheme菜单中, 选择编辑scheme。

3.复制现有的WatchKit app scheme,取一个合适的名字。
比如,叫做“Glance - My WatchKit app”来表示运行和调试glance的scheme
4.编辑scheme时选在左侧的Run
5.在info部分,为新的scheme选择合适的执行目标。

6. 保存关闭scheme编辑器。
创建通知界面的scheme时,在测试的时候指定一个JSON文件。
指定测试通知数据
在模拟器中调试自定义通知界面时,可以在测试时指定一个JSON数据。使用scheme编辑器来指定使用哪个数据文件。数据文件是用.apns后缀结尾的。
注意:如果在创建WatchKit app是选在的Include Notification Scene。Xcode默认提供了一个测试用的PushNotificaitonPayload.apns文件。(文件在WatchKit extension的support文件夹里)也可以后面手动创建。
PushNotificationPayload.apns文件包含了模拟远程通知的大部分字段,也可以自己添加字段。下图展示了默认的JSON文件

JSON数据是被打包成dictionary然后在运行时传递给代码的。由于iOS模拟器不能为iOS app注册操作事件,也可以使用JSON文件来指定显示在界面上的操作按钮。WatchKit模拟器可以包含一组操作,每一个表示一个要添加到界面的操作按钮。每一个数据包含下面的关键字:
- title-操作按钮的标题。这个关键字是必须的
- identifier-这个字符串是传递给界面控制器的application:handleActionWithIdentifier:forLocalNotification:completoionHandler:或application:handleActionWithIdentifier:forRemoteNotification:completionHandler:方法的。这个关键字是必须的。
- destructive-它的值是1或0,1表示按钮以执行销毁操作的按钮形式显示。0表示按钮以普通方式显示。这个字段是可选的。
用JSON数据测试通知界面,需要在scheme中选择对应的数据文件。选择scheme的类型为通知时,Xcode会显示选择JSON数据的菜单。可以为不同的通知数据创建不同的scheme,也可以在测试之前编辑shcme。
Apple Watch 1.0 开发介绍 1.2 简介 配置Xcode工程的更多相关文章
- Apple Watch 1.0 开发介绍 1.4 简介 使用iOS技术
WatchKit extension可以使用iOS app同样的技术,但是由于他是extension,使用有些技术的时候会有限制,有些不推荐使用.下面是一些介绍以及什么时候使用什么技术: 有些需要权限 ...
- Apple Watch 1.0 开发介绍 1.3 简介 WatchKit App 架构
WatchKit app和WatchKit extension一起实现了app的界面.当用户在Apple Watch中操作时,WatchKit app从storyboards中选择合适的场景.比如,如 ...
- Apple Watch 1.0 开发介绍 1.1 简介 开发苹果手表
使用Apple Watch,用户可以使用一种不显眼的方式查看信息.不用把iPhone从口袋里拿出来,就可以通过看一下手表快速获得重要信息. 作为Apple Watch的第三方app开发者,应该通过使用 ...
- Apple Watch 1.0 开发介绍 2.1 WatchKit Apps UI要点
实现app的开始是定义storyboard场景.每个场景定义了app的一部分界面.可以为不同的尺寸自定义场景. 组装storyboard界面 WatchKit app和iOS app的布局模式不同.组 ...
- android 蓝牙4.0 开发介绍
最近一直在研究一个蓝牙功能 由于本人是菜鸟 学起来比较忙 一直搞了好久才弄懂 , 网上对蓝牙4.0也就是几个个dome 抄来抄去,全是英文注解 , 对英语不好的朋友来说 真是硬伤 , 一些没必要的描 ...
- Mac 10.9x下安装配置phonegap3.0开发环境 (涉及android sdk配置)
最近突然想弄一下phonegap,之前一直是听说,没亲自配置开发过.结果配置过程非常艰难啊.特别是android平台的配置,那叫一个麻烦,网上搜了半天都没找到非常好的资料.文章也都是抄来抄去,最烦的就 ...
- Yii Framework2.0开发教程(1)配置环境及第一个应用HelloWorld
准备工作: 我用的开发环境是windows下的apache+mysql+php 编辑器不知道该用哪个好.临时用dreamweaver吧 我自己的http://localhost/相应的根文件夹是E:/ ...
- Yii Framework2.0开发教程(5)数据库mysql性能
继续<Yii Framework2.0开发教程(3)数据库mysql入门> 首先给予一定的尊重yii2数据库支持引进 Yii 基于 PHP's PDO一个成熟的数据库访问层的建立.它提供了 ...
- 从0开发3D引擎(补充):介绍领域驱动设计
我们使用领域驱动设计(英文缩写为DDD)的方法来设计引擎,在引擎开发的过程中,领域模型会不断地演化. 本文介绍本系列使用的领域驱动设计思想的相关概念和知识点,给出了相关的资料. 上一篇博文 从0开发3 ...
随机推荐
- 点滴的积累---J2SE学习小结
点滴的积累---J2SE学习小结 什么是J2SE J2SE就是Java2的标准版,主要用于桌面应用软件的编程:包括那些构成Java语言核心的类.比方:数据库连接.接口定义.输入/输出.网络编程. 学习 ...
- IT谁谁说女子不如男行业
(联合创始人拉里·佩奇(Larry Page)和Sergey Brin(Sergey Brin)曾经说过:"促进性别平衡对工作的顺利开展.该公司可以有很强的女性团队至关重要,尤其是技术的妇女 ...
- hdu1159 LCS模板题
题目分析 pid=1159">原题地址 最简单的最长公共子序列(LCS)问题的模板题了.不解释. ------------------------------------------- ...
- Linux系统时间和硬件时间设置
在Linux中有硬件时钟与系统时钟两种时钟.硬件时钟是指主机板上的时钟设备,也就是通常可在BIOS画面设定的时钟.系统时钟则是指kernel中的时钟.所有Linux相关指令与函数都是读取系统时钟的设定 ...
- WPF界面设计技巧(1)—不规则窗体图文指南
原文:WPF界面设计技巧(1)-不规则窗体图文指南 初到园子,奉上第一篇入门级教程,请勿见笑. 以往WinForm编程中,实现不规则窗体是有一定难度的,更难的是不规则窗体的边缘抗锯齿及局部透明处理.而 ...
- Meet Apache Wicket
第一次接触Wicket,如此多的内容是文字,的原贴,希望大家指正 Meet Apache Wicket By JonathanLocke, original author of Wicket 乔纳森· ...
- SecureCRT学习之道:用SecureCRT来上传和下载数据
今天才知道,原来SecureCRT可以使用linux下的zmodem协议来快速的传送文件,而且还使用非常方便哦,我还傻傻的找其他软件来sftp,笨死了:(你只要设置一下上传和下载的默认目录就行opti ...
- Android---App Widget(五)
尺寸调整指南 当一个Widget被锁屏所持有时,Android框架会忽略minWidth.minHeight.minResizeWidth和minResizeHeight属性字段.如果该Widget同 ...
- 辛格尔顿和Android
辛格尔顿(Singleton) .singleton.h,定义类的基本成员及接口 #ifndef SINGLETON_H_INCLUDE #define SINGLETON_H_INCLUDE cla ...
- 重新想象 Windows 8 Store Apps (16) - 控件基础: 依赖属性, 附加属性, 控件的继承关系, 路由事件和命中测试
原文:重新想象 Windows 8 Store Apps (16) - 控件基础: 依赖属性, 附加属性, 控件的继承关系, 路由事件和命中测试 [源码下载] 重新想象 Windows 8 Store ...