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. HDU 4643 GSM 简单计算几何

    今天比赛的时候略坑, admin告诉我询问Q的个数不超过n^2, 赛后敲了个 O(Q*m^3)的复杂度,但这个复杂度常数比较低,可能在除以个小常数, 300ms过了,真心无语,数据应该水了吧,比赛的时 ...

  2. 【C语言疯狂讲义】(八)C语言一维数组

    1.数组的基本概念: 同样类型    若干个     有序 由若干个同样类型的数据组成的有序的集合 有序:存储地址连续 下标连续 数组名:用来存放数组首地址的变量 数组元素:构成数组的每个数据 数组的 ...

  3. hdu1709(母函数)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1709 题意: 给你一个n,表示n个物品,下面有n个数,表示n个物品的重量,然后进行称量,每个物品只有一 ...

  4. Perl中检测标准输入使用的字符集

    #Perl中检测标准输入使用的字符集 sub locale_encode{ my $lang = $ENV{'LANG'}; my $dot_pos = rindex($lang, '.'); my ...

  5. PHP上传文件超过了最大文件大小限制导致无法上传成功

    最近的研究<HeadFirst PHP & MySQL>第一本书5章"使用存储在文件中的数据",难道当一个文件上传应用程序,发生了错误.即,文件不能成功上传.这 ...

  6. TopCoder中插件的用法

    今天弄了一下TopCoder的插件,发现真的很好很强大,插件的下载地址为 : http://community.topcoder.com/tc?module=Static&d1=applet& ...

  7. IOC框架之一Autofac

    .NET领域最为流行的IOC框架之一Autofac 一.前言 Autofac是.NET领域最为流行的IOC框架之一,微软的Orchad开源程序使用的就是Autofac,Nopcommerce开源程序也 ...

  8. 第一章 andrid visdio 安装

    第一章   andrid visdio 安装与环境搭建 一.Android Studio简介 Android Studio是Google新发布的Android应用程序开发环境,Android Stud ...

  9. Python的包管理

    0.Python的包管理 在刚开始学习Python的时候比较头疼各种包的管理,后来搜到一些Python的包管理工具,比如setuptools, easy_install, pip, distribut ...

  10. visual studio 2013常用快捷键 VS2013快捷键大全

    visual studio 2013常用快捷键 VS2013快捷键大全   Visual Studio 2013 是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具 ...