使用Xcode 6.1.1的静态库和cocoapods

不确定它是否与Xcode 6.1.1或Cocoapods 0.35.0相关。

我用Xcode 6.1.1生成了新的静态iOS库。

SUCCESS(没有椰子树)

  • 生成模拟器和设备库
  • Lipo同时生成FAT MyLib.a静态最终库
  • 创建新的View应用程序项目。 (我没有改变任何默认设置,例如Base SDK,Valid Architecture。)
  • 手动添加MyLib.a和必要的头文件到应用程序项目。
  • 建立应用程序项目和它工作得很好! 没有错误没有警告。
  • 错误

  • 将相同的MyLib.a&标题(上面生成的)上传到HTTP直接下载服务器(种类的工件服务器)。
  • 生成规格&podfile。
  • 删除我之前手动完成的应用程序项目中的所有依赖项(lib和头文件)。
  • 添加pod文件和本地规格
  • “Pod安装”命令在/ 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会进行一些构建配置更改并导致此问题。

    帮我解决这个问题。


    花了2天的时间找出确切的问题后,我发现非常愚蠢的修复。 它基本上与静态库命名约定问题有关。 如果您在artifact / media http服务器中有静态库并且想要与Cococapods集成,请确保库名称应该是lib(您的名字).a以及标头。

    在我的情况下,我保留了MyLib,并且当“pod安装”时它已经下载了,但在应用程序构建过程中失败了。 重命名为libMyLib.a后, 每件事都适合我。 :)

    很容易申请但很难找到这样的解决方案]

    不确定cocoapods是否在任何指南中记录了这一点。

    链接地址: http://www.djcxy.com/p/67119.html

    上一篇: Static library and cocoapods with Xcode 6.1.1

    下一篇: Combine static libraries