開發(fā)者總結(jié)的WatchKit App開發(fā)技巧
蘋果4月初宣布所有注冊(cè)開發(fā)者已經(jīng)可以向App Store提交基于WatchKit開發(fā)的Apple Watch app了,不過不少開發(fā)者遇到了模擬器中沒有發(fā)現(xiàn)的問題。這篇文章主要收集了一些提交tips和常見問題的解決方案,但首先你要先學(xué)習(xí)下蘋果的官方指南。
文中大部分tips來自于從開發(fā)論壇和我自己的一些經(jīng)驗(yàn),根據(jù)收集情況,這篇文章會(huì)不定期更新。
iTunes Connect
可在iTunes Connect中上傳Apple Watch截圖和icon,并且iTunes Connect會(huì)在上傳了***個(gè)WatchKit build后展示出來。
截圖
確保截圖尺寸是312x390px。
截圖只能是app的界面內(nèi)容,并且是全空間截圖。
不要在Apple Watch框架或者圖片中設(shè)計(jì)截圖。
不要將Apple Watch app置于iPhone app截圖中。
不要在截圖中添加額外的文本/宣傳資料。
早期蘋果要求開發(fā)者使用Apple Watch真機(jī)上運(yùn)行的app截圖,不過現(xiàn)在也可以使用模擬器中的運(yùn)行圖。點(diǎn)擊command+S或者從File > Save Screen Shot中截圖。截圖默認(rèn)會(huì)保存在桌面上。
App icon
確保你的app icon不包含alpha channel,不然將會(huì)在審核期間被拒,或者產(chǎn)生一些模糊的錯(cuò)誤信息。
如果遇見了file names must match pattern "*@x.png"這個(gè)錯(cuò)誤,請(qǐng)確保Watch app target的資產(chǎn)目錄中已經(jīng)包含了Watch app icon,因?yàn)閕Phone app和Watch app不能共享一個(gè)資產(chǎn)目錄。
請(qǐng)確保你的icon不包含黑色背景,以防icon和黑色的屏幕混在一起,并且也會(huì)增加被拒的風(fēng)險(xiǎn)。
Deployment Targets
雖然你的iPhone app可能支持iOS 8.2之前的系統(tǒng),但WatchKit extension支持的操作系統(tǒng)必須是iOS 8.2或者更高版本。
如果你在WatchKit extension中使用了框架,那么iPhone app的部署目標(biāo)必須是8.0及以上版本的系統(tǒng),原因是你的WatchKit extension是與host app綁定在一起的。
Build Process
如果你使用Xcode以外的工具開發(fā)應(yīng)用,或者你使用了自定義的構(gòu)建腳本,請(qǐng)確保你的最終打包文件遵守蘋果開發(fā)者論壇中的相關(guān)描述。
Version & Build Numbers, Bundle Identifiers, Names
確保iPhone app、WatchKit extension以及Watch app有著相同的編譯號(hào)和版本號(hào)。
用iPhone app的bundle identifier作為WatchKit extension的bundle identifier的前綴,比如如果iPone app的bundle identifier是com.company.AppName,那么WatchKit extension的bundle identifier就是com.company.AppName.watchkitextension。
Jackrabbit Mobile的David Olesch建議,要確保app target和watch app target展示的名稱應(yīng)該一致,他曾因?yàn)樵搯栴}被拒。
在Xcode 6.3中打開你的應(yīng)用程序,Deployment Target也會(huì)更改為iOS 8.3。如果要改回來,可能會(huì)被蘋果拒絕。
Provisioning
WatchKit extension需要自己的app ID和Provisioning profile.
App Store描述
如果你在App Store描述中提及Apple Watch,請(qǐng)遵守蘋果的指南,比如其中對(duì)字母大寫的要求等。少數(shù)開發(fā)者曾因沒有遵守蘋果的指南而被拒。
Apple Watch通常應(yīng)用英語書寫,并且A和W要大寫。你不能寫成UPPERCASE和lowercase這種形式,也不能使用蘋果的logo代替單詞"Apple"。
性能
要盡可能地確保你的app在模擬器中響應(yīng)積極。如果應(yīng)用在模擬器中運(yùn)行比較卡,那么在真機(jī)上卡頓情況只會(huì)加重,不止一位開發(fā)者曾因這個(gè)原因被拒。
如果你使用了openParentApplication:reply:,那我強(qiáng)烈建議你遵守這篇文章中的建議。我在真機(jī)上進(jìn)行測(cè)試時(shí)發(fā)現(xiàn),如果不使用文中的技巧,那么使用openParentApplication:reply:是非常不可靠的。一些參與真機(jī)體驗(yàn)的開發(fā)者也確認(rèn)了這個(gè)問題。至少一位開發(fā)者曾因openParentApplication:reply:調(diào)用出現(xiàn)問題而被拒絕。
Swift
如果iPhone app使用了Swift編譯,請(qǐng)?jiān)O(shè)置框架和擴(kuò)展的"Embedded Content Contains Swift"的 build setting為NO,設(shè)置iPhone app target的"Embedded Content Contains Swift" build settingYES。
App
復(fù)制鐘面的功能,或者展示時(shí)間的方式容易跟其他混淆,那么可能會(huì)被蘋果拒絕??梢圆榭刺O果開發(fā)者論壇中的帖子,這個(gè)規(guī)則應(yīng)當(dāng)被寫入HIG中,但蘋果似乎遺漏了這一點(diǎn)。
在開發(fā)者論壇中查看這個(gè)帖子,提示你的Watch app大小不能超過50MB.