開發(fā)者總結(jié)的WatchKit App開發(fā)技巧
蘋果4月初宣布所有注冊(cè)開發(fā)者已經(jīng)可以向App Store提交基于WatchKit開發(fā)的Apple Watch app了,不過(guò)不少開發(fā)者遇到了模擬器中沒有發(fā)現(xiàn)的問(wèn)題。這篇文章主要收集了一些提交tips和常見問(wèn)題的解決方案,但首先你要先學(xué)習(xí)下蘋果的官方指南。
文中大部分tips來(lái)自于從開發(fā)論壇和我自己的一些經(jīng)驗(yàn),根據(jù)收集情況,這篇文章會(huì)不定期更新。
iTunes Connect
可在iTunes Connect中上傳Apple Watch截圖和icon,并且iTunes Connect會(huì)在上傳了***個(gè)WatchKit build后展示出來(lái)。
截圖
確保截圖尺寸是312x390px。
截圖只能是app的界面內(nèi)容,并且是全空間截圖。
不要在Apple Watch框架或者圖片中設(shè)計(jì)截圖。
不要將Apple Watch app置于iPhone app截圖中。
不要在截圖中添加額外的文本/宣傳資料。
早期蘋果要求開發(fā)者使用Apple Watch真機(jī)上運(yùn)行的app截圖,不過(guò)現(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)樵搯?wèn)題被拒。
在Xcode 6.3中打開你的應(yīng)用程序,Deployment Target也會(huì)更改為iOS 8.3。如果要改回來(lái),可能會(huì)被蘋果拒絕。
Provisioning
WatchKit extension需要自己的app ID和Provisioning profile.
App Store描述
如果你在App Store描述中提及Apple Watch,請(qǐng)遵守蘋果的指南,比如其中對(duì)字母大寫的要求等。少數(shù)開發(fā)者曾因沒有遵守蘋果的指南而被拒。
Apple Watch通常應(yīng)用英語(yǔ)書寫,并且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è)問(wèn)題。至少一位開發(fā)者曾因openParentApplication:reply:調(diào)用出現(xiàn)問(wè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ì)被蘋果拒絕。可以查看蘋果開發(fā)者論壇中的帖子,這個(gè)規(guī)則應(yīng)當(dāng)被寫入HIG中,但蘋果似乎遺漏了這一點(diǎn)。
在開發(fā)者論壇中查看這個(gè)帖子,提示你的Watch app大小不能超過(guò)50MB.