我們的項目用的是oc,然后因為開源庫的原因,我們的項目中也用到了swift,某天在聯(lián)機調(diào)試的時候,Xcode報了一個很神奇的錯誤
dyld: Library not loaded: @rpath/libswiftCore.dylib
Referenced from: /var/containers/Bundle/Application/295BD35B-CF6C-4769-B29F-116D60E4E4C5/PPStocks.app/PPStocks
Reason: no suitable image found. Did find:
/private/var/containers/Bundle/Application/295BD35B-CF6C-4769-B29F-116D60E4E4C5/PPStocks.app/Frameworks/libswiftCore.dylib: mmap() errno=1 validating first page of '/private/var/containers/Bundle/Application/295BD35B-CF6C-4769-B29F-116D60E4E4C5/PPStocks.app/Frameworks/libswiftCore.dylib'
google了一下,找到了一個很有用的鏈接
dyld: Library not loaded: @rpath/libswiftCore.dylib
里面有人提到了一個很關(guān)鍵的build setting

Embedded Content Contains Swift Code
這個設(shè)置項一定要設(shè)置為YES
官方的QA在這里,說得很清楚了,這個設(shè)置項就是為了讓Xcode知道,你的App需要oc和swift混編了,把swift相關(guān)的庫打包到你的App中。
然而,Xcode是一個坑貨,即使你的設(shè)置項是對的,還是可能會遇到這個提示。解決的辦法是:
- 先設(shè)置為NO
- build一次到手機,肯定會crash
- 設(shè)置為YES
- clean一下
- 再build一次,問題解決了
注:這個問題必現(xiàn)場景是,當你的證書重新revoke后,再次編譯,必現(xiàn)