发布watchOS 2原生应用

一切都源自六一儿童节之后所有提交的app必须为watchos 2 原生应用。

哦,天哪,对于我这个连watchos 1 和2 啥区别,啥是原生应用都不知道的人来说,这哪是儿童节,简直就是世界末日。话说这watchos 2的warning也好久了,一直处于不搭理状态,apple终于开始出招了。这废话少说,还是正式开始吧。

原项目是watch和iphone同时使用calora库,切换到watch os 2后,building,一排的红error啊,UIAlertView,UIViewController 各种unavailable,看的我真是肉疼。

   (1)calora 新建target,calora_watchos.

只保留interface,utils,haitem,去掉一切去view有关的内容。

(2)target->build phases->comple sources增加.m文件。

(3)更新NSURLConnect->NSURLSession。

building,success。终于完成30%了。开始更新project。

  (1)WatchKit Extension增加calora_Watchos.h。

(2)target->WatchKit Extension->Build Phases->Target Dependencies和link Binary With Libraries中增加calora_watchOS.framework。

(3)target->WatchKit Extension->Build Settings->Library Search Paths增加calora目录。

building,不出意外应该是正常跑起来。


问题来了:

(1)interface成功后,UI就是不更新,各种延时或直接没反应。最后google方案

dispatch_async(dispatch_get_main_queue(), ^{

//更新UI

});

运行没有问题。


以为一切都大功告成。提交archived,报错了。

1.大体意思就是程序只提供了watchOS2的版本,没有os1的,watchkit1缺失。这样如果os1的更新程序就没有了。

Dear developer,

We have discovered one or more issues with your recent delivery for "". Your delivery was successful, but you may wish to correct the following issues in your next delivery:

WatchKit 1.0 - Your previous version used an extension for Apple Watch but your current version doesn’t. Users who haven’t updated their Apple Watch to watchOS 2 or later may lose access to their Apple Watch extension.

After you’ve corrected the issues, you can use Xcode or Application Loader to upload a new binary to iTunes Connect.

Regards,

咋么办?一搜很简单,增加target。于是开始增加watchOS1。


发布watchOS 2原生应用_第1张图片
发布watchOS 2原生应用_第2张图片

2.增加完,运行。天!一直转!


发布watchOS 2原生应用_第3张图片

就是这个界面,一直转了1天,越转脑子越乱,越转越不知道哪错了。

于是开始了各种svn co,svn revert...下班点都过了,还是不行。


3.于是觉得是xcode出问题了。不管提交archive。

发布watchOS 2原生应用_第4张图片
missing icons

又错了。增加assets。


4.再次提交。

dynamic library 's search path error

5.又错了,就是上面这个,是它,就是它救了我。没错,就是它。(但是没少折腾)

Invalid Bundle - One or more dynamic libraries that are referenced by your app are not present in the dylib search path.

Once these issues have been corrected, you can then redeliver the corrected binary.

原因:在watchos2建库时,建成了dynamic库(苹果是禁止动态库使用的)

发布watchOS 2原生应用_第5张图片
静态、动态库

关于动态、静态库http://www.jianshu.com/p/4666ce7dc622

重新建caloraForWatchOS2。再次running,成功。(watchos1 2都成功运行)



折腾1天之后发现一个提示:apple不建议直接升级os1到os2,而是新增加target os2.

你可能感兴趣的:(发布watchOS 2原生应用)