Apple Watch开发总结

jopen 9年前

 今日,特酷吧开发完成了’多识阅读-可以听的个性化订阅工具’Apple Watch的适配,目前正在审核中,下面是开发中的总结

一,identifier标示

执行[self pushControllerWithName:@”Interface Controller1” context:nil];

弹不出页面,查明是由于需要在WatchKit App的storyboard中设置scene的identifier.

pushControllerWithName需要和这个identifier保持一致。其他一些地方也需要identifier标示

二,Glance interfaces不支持button

Glances 不支持button,添加了Button会报错

Illegal Configuration: Buttons are not supported in Glance interfaces.

三,Watch App的版本号包括build版本号必须和Host App保持一致

否则会出错:error: The value of CFBundleShortVersionString in your WatchKit app’s Info.plist (1.0) does not match the value in your companion app’s Info.plist (1.0.5). These values are required to match.

四,Apple Watch的UI布局没有iOS应用复杂

只能通过Group以及WKInterfaceButton等UI部件的组合,且可以设置布局的参数也比较少:

1,Horizontal方向的Left,Center,Right;

2,Vertical方向的Top,Center,Bottom;

3,UI组件宽高的Size To Fit Content,Relative to Container,Fixed。

五,Apple Watch的ICON尺寸大小

参考: http://www.cocoachina.com/design/20141124/10306.html

六,Watch App和Extension App通信和数据共享

1,使用MMWormhole

内部使用CFNotificationCenterRef。“多识阅读”在开发中就使用了MMWormhole

2,App Groups

1.通过NSUserDefaults共享数据    为了防止出现数据同步问题,不要忘记调用[shared synchronize];    2,通过NSFileManager共享数据    NSFileManager在iOS7提供了containerURLForSecurityApplicationGroupIdentifier方法,可以用来实现extension和

七,在应用和扩展间共享代码 - Framework

和数据共享类似,extension和containing app很自然地会有一些业务逻辑上可以共用的代码,这时可以通过iOS8中开放使用的framework实现。

具体参考: http://www.onevcat.com/2014/08/notification-today-widget/

八,Watch App 调试方法

首先在模拟器运行Apple Watch App,在iphone 模拟器中启动Host App,依次打开Xcode - Debug - Attach to Process 里找到host app 线程,Attach上即可。

九,提交审核须知

提交到iTunes Connect上时,要求iOS App,Extension App以及Apple Watch App都应该有一个Bundle ID,同时配置各自的distribution profile.也就是说发布一个支持Apple Watch的App,至少需要三个Bundle ID。

否则会提示:

error: Embedded binary is not signed with the same certificate as the parent app. Verify the embedded binary target’s code sign settings match the parent app’s.

另外,文案中提到Apple Watch的地方一定不能拼写错误,正确的方式是”Apple Watch”。

文章来自: http://www.tekuba.net/program/361/

</div> </div>