根據(jù)領導要求,我實驗了一下 Carthage 來管理我們的第三方代碼外构。但是真機調試的時候出現(xiàn)了這個問題:The application does not have a valid signature.
我在網(wǎng)上搜了一下。找到的幾種解決辦法:
- clean某饰,然后重新運行
- 刪除手機上的程序书蚪,重新運行
- 修改證書配置:每次運行前修改一下證書的配置,再攺回來挑随,可以有效一次,相對比較方便勒叠。
以上方法我都試了兜挨,完全不 WORK 啊。
后來調試過程中我想到了眯分,我們當前工程使用的是最新版本的 Swift拌汇,而使用的第三方框架有些是我們自己寫的,而且是 OC 版本弊决。順著這個思路噪舀,我查到了魁淳,如果自己的 OC 代碼是以 Framework 的形式引入進來,并且這個 Framework 的Build Active Architecture Only
不論是 Debug 還是 Release 都選擇的是 NO与倡,也就是編譯armv7界逛,armv7s,arm64 所有平臺的指令纺座,在 Swift 中直接引用OC Framework 而不通過橋接頭文件是可以通過編譯的息拜。如果該 OC Framework 的Build Active Architecture Only
在 Debug模式設置為 YES,Release 設置為 NO净响。這也是我們通常針對 Framework 的編譯設置少欺,平時只編譯當前機器的指令,發(fā)布時編譯所有平臺的指令馋贤,這樣平時調試的時候編譯速度會快一點赞别。這種設置在模擬器可以編譯運行,但是真機不能通過配乓。
最終修改方法:
找到我們自己寫的 Project仿滔,將 Build Active Architecture Only
不論是 Debug 還是 Release 都設置為 NO。carthage update犹芹,然后重新 build堤撵,運行成功。