繁体   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