OC,Swift混編,Bitcode,cocoapod對ipa大小的影響

直接上結(jié)論

(結(jié)論針對本公司的工程而言,項目不同數(shù)據(jù)會有所不同):

  • OC 和swift 混編會讓iPA 的包增大20M,即使你只有幾個swift 文件,每一個swift文件代碼都不多都可能增加20M
  • bitcode 會讓ipa 包增加1.5M左右
  • cocoapod 的設(shè)置Objc打開會增加ipa的大小,幾M左右,而且這個Objc 是最好要打開的
  • 文中還使用了RAC ,RAC對ipa的大小影響還沒測試,有知道的歡迎給我留言

1) oc和swift 混編,bitcode 勾選上,ipa 文件大小49.8M

49.8M有點大 ,30M的時候老板就想更小點,50M老板估計不好接受

Snip20160809_11.png
Snip20160809_8.png

2) oc和swift 混編,bitcode 未選上,ipa 文件大小48.4M,比上面減少了1.4M

Snip20160809_9.png

3) 刪除項目中的swift 文件,改為純OC,ipa為29.7M,減少20M啊

Snip20160809_10.png

4) cocoapod中設(shè)置Objc 會讓ipa 增大

cocoapod這么好用的工具,增大ipa 還是得用的.cocoapod 會讓ipa 增大的,我沒測試,詳情見這位老外的問答.
問題:CocoasPod很好,但是-ObjC 在項目中會讓所有的對象文件編譯到二進制文件中,一個空的工程使用pod AFNetworking和"ObjC"打開,ipa的大小是7M.google map 需要ObjC 打開,這樣導(dǎo)致ipa 17M ,所以這個老外想知道, Google Map SDK 的ObjC 打開,AFNetworking 的ObjC 關(guān)閉去減少ipa 的大小?
答案:別人的答案沒說怎么辦,只是說cocoapod 這么做是為了程序更好的編譯.


CocoasPod is good, But sometimes it's not.Why? Because there is a flag call "-ObjC" in your project.It will pull ALL OBJECT FILES into your resulting binary.
For example, an empty project with "pod 'AFNetworking'" and the flag "-ObjC" is on, that will cause the binary will be 7MB. 7MB for an empty project, that's suck.
Some frameworks like Google Map SDK need the flag "-ObjC" is on.So, if your project with "AFNetworking pod" and "Google Map SDK", it will cause the binary will be 17MB.
So my question is:How can I turn off the "-ObjC" flag for special Library?For example, just keep the "-ObjC" for Google Map SDK, but turn it off on AFNetworking.
In general, adding a static library to your project in Objective-C will pull ALL OBJECT FILES into your resulting binary because cocoa pods installation adds -ObjC flag to your linker settings, and as stated in linker manual:
-ObjC Loads all members of static archive libraries that implement an Objective-C class or category.

This flag included to solve problem with linking categories, because by default linker will not include object files containing only categories into resulting binary.

文中的打包出的ipa大小都包含了RAC 和cocoapad.RAC對ipa的大小影響還沒測試,估計在7M以內(nèi),

  • 最后的結(jié)論見文章開頭,有不同的意見歡迎留言

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 希望,奢望。眼前,遙遠。分過,合過。 失望,絕望。夢醒,結(jié)束。恨過,痛過。 祈求,奢求。承諾,謊言??捱^,傷過。 ...
    一朵愁云閱讀 183評論 0 0
  • 文/子子穆 前段時間,魚日姑娘在我們好友群里宣布:我跟戚先生領(lǐng)證啦!一下子群里就炸開了鍋,搞得我們這些單身狗們一臉...
    子子穆閱讀 6,001評論 13 25
  • “黑社會”。是我老婆對以前一個鄰居,給起的代號。 其實,這鄰居,并不是真的黑社會成員。只是,這個人長的有點像。肚子...
    時間刀客閱讀 450評論 0 0

友情鏈接更多精彩內(nèi)容