簡體   English   中英

使用Xcode 6.1.1的靜態庫和cocoapods - ld:找不到庫錯誤

[英]Static library and cocoapods with Xcode 6.1.1 - ld: library not found Error

不確定它與Xcode 6.1.1或Cocoapods 0.35.0有關。

我用Xcode 6.1.1生成了新的靜態iOS庫。

成功(沒有cocoapods)

  1. 生成模擬器和設備庫
  2. Lipo同時生成FAT MyLib.a靜態最終lib
  3. 創建新的View Application項目。 (我沒有更改任何默認設置。例如Base SDK,Valid Architecture。)
  4. 手動將MyLib.a和必要的頭文件添加到應用程序項目中。
  5. 構建應用程序項目,IT工作精細! 沒有錯誤沒有警告。

錯誤

  1. 將相同的MyLib.a和標頭(上面生成的)上傳到HTTP直接下載服務器(工件服務器的種類)。
  2. 生成規格和podfile。
  3. 從我之前手動完成的app項目中刪除所有依賴項(lib和header)。
  4. 添加pod文件和本地規格
  5. “Pod install”命令在/ Pods文件夾中正確拉出MyLib.a和標題。

但是在構建應用程序項目時給了我

   Ld Build/Products/Debug-iphonesimulator/LibTest.app/LibTest normal x86_64
    cd /Users/admin/Cocoapods/Project/Library/TestProject/LibTest
    export IPHONEOS_DEPLOYMENT_TARGET=8.1

 ld: library not found for -lMyLib
 clang: error: linker command failed with exit code 1 (use -v to see invocation)

當我在MyLib.a上發出“lipo”命令時

胖文件中的體系結構:/Users/admin/Cocoapods/Project/Library/Libs/Final/MyLib.a是:armv7 armv7s i386 x86_64 arm64

它不是真正的架構問題,否則它應該在我沒有cocoapods的第一次嘗試失敗。 Cocoapods做了一些構建配置更改,這就產生了這個問題。

幫我解決這個問題。

在花了兩天時間找出確切的問題后,我發現非常愚蠢的修復。 它基本上與靜態庫命名約定問題有關。 如果您在artifact / media http服務器中有靜態庫並想與Cococapods集成,請確保庫名稱應為lib(您的名字).a以及標題。

在我的情況下,我保留了MyLib,當“pod安裝”時它已經下載,但在應用程序構建期間它失敗了。 重命名為libMyLib.a后, 每件事都適合我。 :)

很容易申請但很難找到這樣的解決方案]

不知道cocoapods是否在任何指南中記錄了這一點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM