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工程的更多相关文章

  1. Apple Watch 1.0 开发介绍 1.4 简介 使用iOS技术

    WatchKit extension可以使用iOS app同样的技术,但是由于他是extension,使用有些技术的时候会有限制,有些不推荐使用.下面是一些介绍以及什么时候使用什么技术: 有些需要权限 ...

  2. Apple Watch 1.0 开发介绍 1.3 简介 WatchKit App 架构

    WatchKit app和WatchKit extension一起实现了app的界面.当用户在Apple Watch中操作时,WatchKit app从storyboards中选择合适的场景.比如,如 ...

  3. Apple Watch 1.0 开发介绍 1.1 简介 开发苹果手表

    使用Apple Watch,用户可以使用一种不显眼的方式查看信息.不用把iPhone从口袋里拿出来,就可以通过看一下手表快速获得重要信息. 作为Apple Watch的第三方app开发者,应该通过使用 ...

  4. Apple Watch 1.0 开发介绍 2.1 WatchKit Apps UI要点

    实现app的开始是定义storyboard场景.每个场景定义了app的一部分界面.可以为不同的尺寸自定义场景. 组装storyboard界面 WatchKit app和iOS app的布局模式不同.组 ...

  5. android 蓝牙4.0 开发介绍

    最近一直在研究一个蓝牙功能 由于本人是菜鸟  学起来比较忙 一直搞了好久才弄懂 , 网上对蓝牙4.0也就是几个个dome 抄来抄去,全是英文注解 , 对英语不好的朋友来说 真是硬伤 , 一些没必要的描 ...

  6. Mac 10.9x下安装配置phonegap3.0开发环境 (涉及android sdk配置)

    最近突然想弄一下phonegap,之前一直是听说,没亲自配置开发过.结果配置过程非常艰难啊.特别是android平台的配置,那叫一个麻烦,网上搜了半天都没找到非常好的资料.文章也都是抄来抄去,最烦的就 ...

  7. Yii Framework2.0开发教程(1)配置环境及第一个应用HelloWorld

    准备工作: 我用的开发环境是windows下的apache+mysql+php 编辑器不知道该用哪个好.临时用dreamweaver吧 我自己的http://localhost/相应的根文件夹是E:/ ...

  8. Yii Framework2.0开发教程(5)数据库mysql性能

    继续<Yii Framework2.0开发教程(3)数据库mysql入门> 首先给予一定的尊重yii2数据库支持引进 Yii 基于 PHP's PDO一个成熟的数据库访问层的建立.它提供了 ...

  9. 从0开发3D引擎(补充):介绍领域驱动设计

    我们使用领域驱动设计(英文缩写为DDD)的方法来设计引擎,在引擎开发的过程中,领域模型会不断地演化. 本文介绍本系列使用的领域驱动设计思想的相关概念和知识点,给出了相关的资料. 上一篇博文 从0开发3 ...

随机推荐

  1. DOM的event对象的属性和方法

    属性/方法 类型 是否可读写 描写叙述 altKey Boolean 读写 指示是否按下alt键 bubbles Boolean 读 指示事件是否冒泡 button Intrger 读写 鼠标事件发生 ...

  2. 在word 中复选框划勾或叉的方法

    输入大写字母R.大写字母Q ,然后将字体改为Wingdings 2, 就分离得到带框的勾和叉.

  3. H3C S5120交换机ACL应用的问题

    下午在S5120上ACL的时候发现不起作用,ACL如下: acl number 3001 name deny-wan-to-lan-vpn rule 0 deny ip source 10.3.0.0 ...

  4. Eclipse上运行Python,使用PyDev

    转自:http://www.ibm.com/developerworks/cn/opensource/os-cn-ecl-pydev/index.html 级别: 初级 郑 伟芳 (zhengwf@c ...

  5. Eclipse扩展点实践之添加快捷菜单项(Command方式实现)

    有两种方式,一种是Action的方式,另一种是Command的方式(这两种方式的区别详见:http://wiki.eclipse.org/FAQ_What_is_the_difference_betw ...

  6. SEAndroid安全机制中的进程安全上下文关联分析

    前面一篇文章分析了文件安全上下文关联过程.可是在SEAndroid中,除了要给文件关联安全上下文外,还须要给进程关联安全上下文.由于仅仅有当进程和文件都关联安全上下文之后,SEAndroid安全策略才 ...

  7. PHPDocumentor代码注释规范说明

       PHPDocumentor是一个的用PHP写的道具,对于有规则注释的php程序,它能够快速生成具有相互参照,索引等功能的API文档. 标记 用途 描述 @abstract   抽象类的变量和方法 ...

  8. 【OC加强】NSDate的使用方法——日期时间在实际开发中比較有用

    (1)日期的最主要知识点就是日期转换成字符串格式化输出,相反就是依照某个格式把字符串转换成日期. (2)一般关于时区的设置非常少用到,仅仅要了解就可以. #import <Foundation/ ...

  9. 聊聊高并发(二十九)解析java.util.concurrent各个组件(十一) 再看看ReentrantReadWriteLock可重入读-写锁

    上一篇聊聊高并发(二十八)解析java.util.concurrent各个组件(十) 理解ReentrantReadWriteLock可重入读-写锁 讲了可重入读写锁的基本情况和基本的方法,显示了怎样 ...

  10. 询问任意区间的min,max,gcd,lcm,sum,xor,or,and

    给我们n个数,然后有m个询问,每个询问为L,R,询问区间[L,R]的最大最小值,最小公约数,最大公约数,和,异或,或,且 这些问题通通可以用RMQ的思想来解决. 以下用xor来作为例子 设dp[i][ ...