翻譯:App Thinning (iOS, tvOS, watchOS) - App瘦身

寫在前面的廢話

原文 https://developer.apple.com/library/prerelease/content/documentation/IDEs/Conceptual/AppDistributionGuide/AppThinning/AppThinning.html#//apple_ref/doc/uid/TP40012582-CH35-SW3

本來看了原文想自己翻譯的,突然發(fā)現(xiàn)網(wǎng)上已經(jīng)有了,so

譯文:

http://www.reibang.com/p/330303ac0410

參考:

http://www.cnbeta.com/articles/401221.htm


然后,仔細(xì)拜讀后,發(fā)現(xiàn)譯文有些沒翻譯出來,so,還是自己動手吧.

譯文

App Store和操作系統(tǒng)優(yōu)化了iOS, tvOS, 和 watchOS上的app的安裝,它們在用戶特定的設(shè)備上讓app占用最小的空間.這種優(yōu)化叫做 App 瘦身,它讓你創(chuàng)建出的app能最大限度使用設(shè)備的特性,占用最小的磁盤空間,并能適應(yīng)蘋果未來的更新.在快速下載和節(jié)約空間這兩點(diǎn)上,會提供更好的用戶體驗(yàn).

這一章描述了三種APP瘦身的方式:slicing, bitcode和 on-demand resources.

Slicing(iOS,tvOS) 切割

Slicing是針對不同設(shè)備,創(chuàng)建和交付app bundle的變體.一個變體只提供目標(biāo)設(shè)備所需要的architecture和資源.你還是可以繼續(xù)向iTunes Connect提供你開發(fā)和更新的完整app版本.App Store會根據(jù)你的app支持的設(shè)備種類創(chuàng)建不同的app變體.如圖片資源會根據(jù)它們的解決方案和設(shè)備族進(jìn)行切分.GPU資源被根據(jù)設(shè)備性能被切分.(PS:意思是不同的變體有不同的圖拍你和GPU資源).對tvOS app來說,image catelog asset中的圖片被切分,大的app icon會被移除.當(dāng)用戶安裝一個app時,下載和安裝的就是一個適合于用戶設(shè)備的app變體.

在 開發(fā)過程中,Xcode的模擬器就進(jìn)行了切割,所以你創(chuàng)建和測試的是一個本地的變體.當(dāng)你在設(shè)備(真機(jī)或模擬器)上build和run你的app時,Xcode切割了你的app.當(dāng)你創(chuàng)建Archieve時,Xcode是包含了所有的app版本的,也允許你導(dǎo)出變體.(PS:我還沒找到在哪里導(dǎo)出)

Note:app切割只支持ios9(含)以上的設(shè)備;其他的版本,App Store還是給用戶通用的app 圖1-1


1-1

切割存在于你日常的開發(fā)和發(fā)布過程中,大概有如下方面:

1. 在Xcode中,指定目標(biāo)設(shè)備,在asset catalog中為image提供多重解決方案.為了讓資源被切割,你必須使用asset catalog

2. 選擇模擬器或者真機(jī)設(shè)備,build,run

Xcode對選定的設(shè)備build一個app的變體,這樣縮短了編譯的時間,你也能在本地測試不同的變體.

3. 創(chuàng)建app的Archieve,為目標(biāo)設(shè)備在本地導(dǎo)出一個變體.

測試所有你導(dǎo)出的變體,盡早發(fā)現(xiàn)配置錯誤.

4. 上傳app到iTunes Connect

App Store從archive里創(chuàng)建不同的app變體.一共創(chuàng)建多少種變體取決于Xcode project配置的architecture和資源.

5. 在iTunes Connect中,給你的測試者們發(fā)布一個預(yù)發(fā)布版本.

測試者通過TestFlight軟件在目標(biāo)設(shè)備上安裝預(yù)發(fā)布版本.TestFlight會下載一個適用于用戶設(shè)備的app變體.

Note:在正式發(fā)布app前,為了測試App Store為用戶創(chuàng)建的變體,你只能邀請內(nèi)部測試員(存在于iTune Connect的team中的用戶)用TestFlight下載變體.如果你想邀請外部測試員(只有email的用戶),他們只好等Beta App Review審核了app后,才能下載變體.

6. 在iTunes Connect中發(fā)布app

用戶在設(shè)備上安裝app,App Store下載一個適合于用戶設(shè)備的app變體.

Bitcode

Bitcode是一個編譯過的程序的中間表示形式.你上傳到iTunes Connect的包含了bit code的app會在App Store處編譯和鏈接.包含了bit code 的app會讓蘋果在將來二次優(yōu)化你的二進(jìn)制代碼,而不需要你再提交一個新的app版本到store上了.

Note:對iOS app來說,bitcode是默認(rèn)選項,不過也是可選的.

對watchOS and tvOS app來說,bit code是必須的.如果你用了bit code,所有app和app bundle的frameworks都需要包含bit code.

當(dāng)你把你的app提交到iTunes Connect后,你可以下載build產(chǎn)生的dSYMs文件,在這里有對它的描述:https://developer.apple.com/library/prerelease/content/documentation/IDEs/Conceptual/AppDistributionGuide/AnalyzingCrashReports/AnalyzingCrashReports.html#//apple_ref/doc/uid/TP40012582-CH21-SW3

On-Demand Resources(iOS, tvOS)

On-demand resources 是資源-----如圖片和聲音-----你可以設(shè)置tag,可以通過tag成組的請求.App Store在服務(wù)器上保存了這些資源,你可以下載它們.On-demand resources支持快速下載和減小app的size.節(jié)省了app第一次啟動的時間.例如:一個game app會劃分游戲資源的層次,只有當(dāng)用戶要觸發(fā)到那一層時,app才去請求那一層的資源.(PS:類似于關(guān)卡).簡單的例子如,只有用戶購買了app中的付費(fèi)部分時,app才會去會請求付費(fèi)部分的資源.

當(dāng)On-demand resources資源不再被需要時,或者磁盤空間低時,系統(tǒng)會清理On-demand resources資源.如果你在App Store之外的渠道發(fā)布或測試,你就需要自己保存這些資源.不支持可執(zhí)行的On-demand resources(不支持代碼下載,只支持資源下載).App Store也切割(Slice)On-demand resources,這樣可以提升用戶體驗(yàn).

對用戶來說,On-demand resources是透明的,它在后臺傳輸.如圖3-1


3-1

怎樣在app中建立on-demand resources呢?參考:

on-demand resources指引:

https://developer.apple.com/library/prerelease/content/documentation/FileManagement/Conceptual/On_Demand_Resources_Guide/index.html#//apple_ref/doc/uid/TP40015083

NSBundleResourceRequest Class Reference:

https://developer.apple.com/reference/foundation/nsbundleresourcerequest














翻譯

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子式矫,更是在濱河造成了極大的恐慌像寒,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,430評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件悲龟,死亡現(xiàn)場離奇詭異访娶,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)怀酷,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,406評論 3 398
  • 文/潘曉璐 我一進(jìn)店門稻爬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蜕依,你說我怎么就攤上這事桅锄。” “怎么了样眠?”我有些...
    開封第一講書人閱讀 167,834評論 0 360
  • 文/不壞的土叔 我叫張陵罩阵,是天一觀的道長乖菱。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么帽驯? 我笑而不...
    開封第一講書人閱讀 59,543評論 1 296
  • 正文 為了忘掉前任胰伍,我火速辦了婚禮尉桩,結(jié)果婚禮上侈询,老公的妹妹穿的比我還像新娘。我一直安慰自己晚碾,他們只是感情好抓半,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,547評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著格嘁,像睡著了一般笛求。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上糕簿,一...
    開封第一講書人閱讀 52,196評論 1 308
  • 那天探入,我揣著相機(jī)與錄音,去河邊找鬼懂诗。 笑死蜂嗽,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的殃恒。 我是一名探鬼主播植旧,決...
    沈念sama閱讀 40,776評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼离唐!你這毒婦竟也來了病附?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,671評論 0 276
  • 序言:老撾萬榮一對情侶失蹤亥鬓,失蹤者是張志新(化名)和其女友劉穎完沪,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體嵌戈,經(jīng)...
    沈念sama閱讀 46,221評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡覆积,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,303評論 3 340
  • 正文 我和宋清朗相戀三年听皿,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片宽档。...
    茶點(diǎn)故事閱讀 40,444評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡写穴,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出雌贱,到底是詐尸還是另有隱情,我是刑警寧澤偿短,帶...
    沈念sama閱讀 36,134評論 5 350
  • 正文 年R本政府宣布欣孤,位于F島的核電站,受9級特大地震影響昔逗,放射性物質(zhì)發(fā)生泄漏降传。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,810評論 3 333
  • 文/蒙蒙 一勾怒、第九天 我趴在偏房一處隱蔽的房頂上張望婆排。 院中可真熱鬧,春花似錦笔链、人聲如沸段只。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,285評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽赞枕。三九已至,卻和暖如春坪创,著一層夾襖步出監(jiān)牢的瞬間炕婶,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,399評論 1 272
  • 我被黑心中介騙來泰國打工莱预, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留柠掂,地道東北人。 一個月前我還...
    沈念sama閱讀 48,837評論 3 376
  • 正文 我出身青樓依沮,卻偏偏與公主長得像涯贞,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子悉抵,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,455評論 2 359

推薦閱讀更多精彩內(nèi)容