我目前正在構建一個傘框架(在任何人這麼說之前,我知道蘋果公司不鼓勵這種框架,但我是這種情況,因爲我是所有子框架的所有者,框架,如果它們不屬於這個或另一個Umbrella框架的一部分,則它們不是分佈式的,但我們處於封閉源代碼配置中)。Xcode 8:禁用位代碼和傘框架
我按照這個帖子創建了框架:https://stackoverflow.com/a/41815368/2572568
一切工作正常,除了我得到了以下錯誤:
dyld: Library not loaded: @rpath/B.framework/B Referenced from: /private/var/containers/Bundle/Application/E0113060-CA91-47F8-BEE3-BDF1F847DB3A/app.app/Frameworks/A.framework/A Reason: no suitable image found. Did find: /private/var/containers/Bundle/Application/E0113060-CA91-47F8-BEE3-BDF1F847DB3A/app.app/Frameworks/A.framework/Frameworks/B.framework/B: required code signature missing for '/private/var/containers/Bundle/Application/E0113060-CA91-47F8-BEE3-BDF1F847DB3A/app.app/Frameworks/A.framework/Frameworks/B.framework/B'
應用程序是使用具有子框架乙
我發現,所有項目禁用位碼是解決這一問題的雨傘框架的一個應用程序(這就是我現在所做的)從此主題:https://github.com/CocoaPods/CocoaPods/issues/3661
因此,這裏是我的問題:
- 是什麼地停止位碼正好在做什麼?我發現Apple提交代碼後可以運行優化。這些速度優化或磁盤空間優化,還是其他優化?
- 我做錯了建設我的傘架?是否有可能不禁用位碼?
感謝亞歷克斯這個答案。我目前只是包裝框架,我是這個傘框架中的所有者,所以我認爲他們都會支持bitcode(除非我需要爲此做一些特殊的事情)。 無論如何,基於你的答案1,由於Umbrella框架的結構,可能無法啓用位碼,從而無法用位碼編譯。 – Supermomo
Bitcode的工作原理並不完全清楚,所以這可能是有道理的,也是蘋果不喜歡Umbrella Frameworks的另一個原因 – Sn0wfreeze