2017-04-10 27 views
0

我試圖實現CocoaLumberjack爲框架,它工作正常,在模擬器上,但是當嘗試使用它在我的iPhone我得到這個錯誤:的iOS:dyld的@是rpath/CocoaLumberjack.framework/CocoaLumberjack

dyld: Library not loaded: @rpath/CocoaLumberjack.framework/CocoaLumberjack 
    Referenced from: /var/containers/Bundle/Application/3EF12D55/myApp.app/CocoaLumberjackSample 
    Reason: image not found 

你們誰都知道爲什麼模擬器和設備之間的區別?

我真的很感謝你的幫助。

回答

2

好了,所不同的是簡單的:

每當你在模擬器上運行你的應用程序可以訪問任何其他構建產品在同一個build文件夾中,例如,框架。這就是爲什麼你不會在模擬器中遇到這個問題。在您的iOS設備上,這是不同的故事,因爲Xcode只會將實際的應用程序包複製到您的設備。因此,爲了使其工作,您需要將CocoaLumberjack.framework添加到Embed Frameworks構建階段。這會將框架複製到應用程序包中的Frameworks子文件夾中,以便您的應用程序二進制文件可以找到它。

enter image description here

如果沒有Embed Frameworks構建階段,你可以通過添加按鈕,在構建階段選項卡的左上角添加一個New Copy Files Build Phase,然後選擇Frameworks作爲目標。另一個選項是選擇常規選項卡,向下滾動,然後在Embedded Binaries部分下添加您的框架。

+0

如何在Xcode 8.3.1中添加Embed FrameWorks選項? – user2924482

+0

您可以通過構建階段選項卡左上角的添加按鈕添加新的「複製構建階段」,然後選擇「Frameworks」作爲目標。另一種選擇是選擇常規選項卡,向下滾動,然後在「嵌入式​​二進制文件」部分下添加您的框架。 –