2016-12-06 42 views
6

我已經構建了一個Swift框架,現在我試圖開始構建一個將使用該框架的Swift iOS應用程序。我得到這個錯誤:dyld:Library未加載:@ rpath/libswiftSwiftOnoneSupport.dylib

dyld: Library not loaded: @rpath/libswiftSwiftOnoneSupport.dylib 
    Referenced from: /Users/tdean/Library/Developer/Xcode/DerivedData/NFLApplication-ejmafvjrlqgjaabggwvadjarjjlg/Build/Products/Debug-iphonesimulator/NFLStatsModel.framework/NFLStatsModel 
    Reason: image not found 

我SO精煉,發現了類似的報告,並試圖所列的修復,其中包括:

  • 清理出我DerivedData文件夾
  • 重新啓動的Xcode和iPhone模擬器
  • 確保Always Embed Swift Standard Libraries = YES已設置,無論是在我的框架還是我的應用程序的構建設置中
  • 確保已設置Enable Bitcode=NO,無論是在我的框架和我的應用程序的構建設置
  • 確保Runpath Search Paths設置爲@executable_path/Frameworks,無論是在我的框架和
  • 複製從我的Xcode的安裝所有libswift文件到本地副本我的項目中我的應用程序的構建設置,添加一個自定義構建階段將這些文件複製到框架文件夾中。

在每種情況下,當我嘗試運行我的應用程序時,都會得到相同的錯誤。

  • 的Xcode 8.1版(8B62)
  • 蘋果斯威夫特版本3.0.1(swiftlang-800.0.58.6鐺 - 800.0.42.1)
+0

longshot建議:將'@executable_path /../ Frameworks'添加到您的框架中的運行時搜索路徑。 –

+0

@JoeDaniels - 當我添加它時沒有區別。感謝您的建議。 –

+0

哦,Swift語言版本呢?這是全部3.0嗎? –

回答

21

我最終得到了這個工作使用補丁的混合。我不確定是否所有這些都是需要的,但我記錄了這裏似乎對我有用的東西,以防萬一任何人都能從我所找到的東西中受益。

  1. 我已Always Embed Swift Standard Libraries在兩個我的斯威夫特框架構建設置選項卡中的YES值,並在使用該框架的應用雨燕。
  2. 我已將Foundation.framework添加到我的Swift框架和使用該框架的Swift應用程序的常規選項卡的Linked Frameworks和Libraries部分。
  3. 我已將Foundation.framework添加到使用該框架的Swift應用程序的常規選項卡的嵌入式二進制文件部分。

所有這些設置都已準備就緒,我可以在不遇到此錯誤的情況下構建和運行我的應用程序。

+0

謝謝!我花了兩個小時設置了我正在製作的一個生產應用程序的演示應用程序/框架功能。兩次構建事情時,我遇到了這個確切的錯誤。出於某種原因,我可以循環(迭代)通過框架中的自定義UIButtons數組,但是當我嘗試實際訪問循環中的某些內容時,我得到了此錯誤。僅供參考:我測試了每件東西,而我需要添加的*只有* 1是#1。這個新功能僅在Xcode 8中開發,並且在一個分支中工作(我不知道爲什麼),但是沒有任何其他新創建的項目 - 直到現在。 – dfd

+0

對我來說,完成第一點指令就足夠了。 謝謝。 –

+0

只有1點才解決了它。我覺得很奇怪,你必須把它放在應用程序上,並放在鏈接的框架上。 XCode的依賴關係管理是一個困惑的根源。任何其他方式使其自動? –

4

你如何安裝你的依賴關係?

我有一個類似的問題:

dyld: Library not loaded: @rpath/libswiftSwiftOnoneSupport.dylib Referenced from: <internal framework> Reason: image not found

它竟然是關係到整個雨燕模塊優化。

使用迦太基作爲依賴管理器,他們被編譯爲發佈,因此編譯與全模塊優化,這Xcode建議我打開。在模擬器上運行應用程序將其編譯爲Debug。我猜測動態框架不能與運行它的應用程序處於不同的優化級別。

解決方案是明確指定我希望Carthage打造的配置。 (carthage bootstrap --configuration Debug)哦,並且清理我的build文件夾,當然。

+0

感謝您的建議,但我沒有安裝任何依賴項,也沒有使用迦太基。我在一個Xcode項目中創建了自己創建的Swift框架。我在另一個Xcode項目中創建了自己創建的Swift應用程序。我在一個Xcode工作區中都有兩個項目,並且我有該應用程序引用的框架。 –

+0

嘗試檢查框架和應用程序的構建設置中的優化級別。 – weissazool

相關問題