2013-04-11 135 views
31

「鏈接命令退出碼1失敗」正在開發現有的iOS應用程序,我必須寫單元測試用例這個項目。它正在模擬器6.0中建立和運行。 每當我嘗試測試項目時,它都顯示下面的錯誤消息。我無法確定確切的錯誤。「找不到文件」,在Xcode 4.5.1

id: file not found: /Users/Yuva/Library/Developer/Xcode/DerivedData/FlyApp-aexukpgtbathuadgxlnm/Build/Products/Debug-iphonesimulator/FlyApp.app/FlyApp 
clag: error: linker command failed with exit code 1 (use -v to see invocation) 

你能幫我解決這個鏈接錯誤並測試應用程序嗎?

回答

0

你的連接體以尋找一個文件:/Users/Yuva/Library/Developer/Xcode/DerivedData/FlyApp-aexukpgtbathuadgxlnm/Build/Products/Debug-iphonesimulator/FlyApp.app/FlyApp

是否遵循確定文件是否在那裏的路徑?請注意,FlyApp.app可能是一個包,如果您從Finder查看,則必須「查看包內容」。如果它不存在,則1)需要首先構建FlyApp.app,或者2)您的測試代碼中有某些內容取決於它是否存在,這不能由您的問題確定。

+0

嗨。我無法看到/ Users/Yuva/Library /因爲在Yuva文件夾中圖書館錯過了。我該如何解決這個問題?你可以幫助我嗎?謝謝。 – 2013-04-17 10:51:39

+0

出於某種原因,您編寫的代碼認爲那裏有一個文件。我知道有時DerivedData文件夾會變得混亂,也許看着Xcode的首選項 - >位置菜單項可能會清除它。 – 2013-04-17 15:20:47

+0

謝謝你的回覆。現在我得到了Derived Data文件夾,然後是您的指南。 Build,Index,info.plist,Logs,scm.plist和TextInex有很多文件夾。我可以刪除DerivedData文件夾項目嗎?請幫幫我。謝謝。 – 2013-04-22 08:17:49

0

答案就在你的生成設置>庫搜索路徑條目。確保沒有列出完全合格的路徑。用$ SRCROOT成語來裝飾它們,並用雙引號括住路徑。如果有任何退出反斜槓,請確保將它們移除。

做一個乾淨的,然後建立和你應該可以重新開業。這似乎是在Xcode 5.x的問題

35

我遇到了同樣的錯誤消息。原來我已經重命名了我的應用程序目標,並沒有將測試目標,生成設置,軟件包加載程序設置更新爲我的新應用程序名稱。

此設置的詳細信息可以在Adding Unit Tests to an existing iOS project with Xcode 4找到我回顧了相同的步驟,它幫我解決我的項目在Xcode 5

+2

我在重命名後遇到此問題。在Test Target Build Settings中更改'Bundle Loader'幫助我解決了這個問題。 – derpoliuk 2014-10-15 04:37:41

+0

同樣在這裏:有人重命名了應用程序,鏈接程序仍在尋找舊的。 – 2014-11-14 17:30:06

+1

這對我有用。對於像我這樣的新手來說,堅持從「項目設置」中找到「測試目標」。你會立即在「鏈接」部分看到錯誤的「bundle loader」路徑,但這不是我錯誤的來源,因爲這些條目引用了「$(TEST_HOST)」。向下滾動到「測試」部分並修復「測試主機」條目,這將更新鏈接部分。 – Josh 2015-01-03 13:28:57

81

此錯誤驅使我瘋了1.30小時

我已經改變了我產品名稱並禁用快照選項。然後突然出現這個錯誤。

的錯誤是LD:找不到文件:.././ previousproductname.app/previousproductname

步驟我跟着調試和修復

  1. 開業組織者刪除deriveddata,重新啓動Xcode。 - 不解決

  2. 遵循了這一環節http://twobitlabs.com/2011/06/adding-ocunit-to-an-existing-ios-project-with-xcode-4/的步驟 - 同樣的錯誤,沒有解決。

  3. 最後改變了計劃名稱,刪除了我的老方案,並增加了新,解決了我的問題。

以上所有步驟均有效。

然後

+14

創建一個新的方案適用於我 – onmyway133 2014-11-24 04:52:27

+6

創建一個新的方案也適用於我,也非常感謝! – Will 2014-12-08 06:12:56

+18

我有同樣的問題 - 創建一個新的計劃適合我。 XCode 6中的步驟轉至產品選項卡,然後轉到SCHEME,然後進入管理方案壓力減號,然後使用+創建新方案。 – user1154390 2015-01-01 12:36:40

17

刪除你的計劃,然後重新創建它(單擊新圖標或Xcode中使用自動創建)。這個對我有用。

+0

這對我有用,我的上帝一直在敲我的頭只是爲了修復它, 謝謝 – arnold 2014-11-12 16:24:37

+0

@haotang你是一個生活的保護者... Thankyou非常...我已經嘗試了這麼多解決方案,但沒有任何工作,除了這... Ty :) – 2015-01-12 09:39:26

+0

@NikhilLihla yw :) – haotang 2015-01-13 00:52:25

14

您必須更改產品名稱。由於您的工作區名稱和產品(應用程序)名稱不匹配,會發生此錯誤。

您只需將工作區名稱替換爲ProjectName-Tests目標的TEST HOST Build設置中的產品(應用程序)名稱,如圖中所述。要做到這一點,請選擇ProjectName-Tests目標,選擇Build Settings,搜索Test Host術語。

enter image description here

這是此錯誤的標準配置的解決方案。

乾杯!

+0

這是什麼!!!!!謝謝,Kuldeep。 – 2015-07-14 19:22:21

+0

永遠是我的榮幸@ThomásC。 :) – Kuldeep 2015-07-15 06:57:21

+0

這就是它..當我在產品名稱中添加一個空格時發生在我身上。請記住,您不僅必須在同一路徑上更改一個名稱,而且還要更改兩個名稱從FlyApp.app/FlyApp到abcd.app/abcd – Bruce 2015-07-18 08:17:36

0

創建一個新的方案。 bundle id /目標名稱/可執行文件/項目名稱等等都是略有不同的概念。如果您更改了一個(與我一樣),則舊方案可能仍會設置爲查找舊值作爲可執行文件的名稱,而構建過程可能已更新爲不再構建該可執行文件。

5

在Xcode中6,你需要:

  1. 去的產品文件夾
  2. 點擊文件.xctext
  3. 的 「目標」,選擇測試
  4. 和主機應用程序選擇應用程序。
  5. 點擊構建應用程序。

適合我!

0

ARGH!這是一個非常令人沮喪的問題,從我的XCode中得到了藍色8.2

在我的情況下,它涉及到從計劃中刪除我的測試目標,構建並運行主應用程序,然後讀取測試目標到'測試'部分。

看來測試目標試圖在尚未構建的派生數據中找到它想要的東西。運行應用程序而不嘗試構建測試也可以準備先前缺少的派生數據。

......瘋狂在XCode中做了同樣的事情兩次,並期待相同的結果: