Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/114.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Xcode为6.1.1的静态库和CoCoapod-ld:未找到库错误_Ios_Xcode_Xcode6_Static Libraries_Cocoapods - Fatal编程技术网

Ios Xcode为6.1.1的静态库和CoCoapod-ld:未找到库错误

Ios Xcode为6.1.1的静态库和CoCoapod-ld:未找到库错误,ios,xcode,xcode6,static-libraries,cocoapods,Ios,Xcode,Xcode6,Static Libraries,Cocoapods,不确定它是否与Xcode 6.1.1或Cocoapods 0.35.0相关 我已经用Xcode 6.1.1生成了新的静态iOS库 成功(没有椰子荚) 生成模拟器和设备库 脂质同时生成脂肪MyLib。一个静态的最终lib 创建新的视图应用程序项目。(我没有更改任何默认设置,例如基本SDK、有效架构。) 手动将MyLib.a和必要的头文件添加到应用程序项目中 构建应用程序项目,它工作正常!!没有错误,没有警告 错误 将相同的MyLib.a和头(上面生成的)上传到HTTP直接下载服务器(工件服务器的类

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

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

成功(没有椰子荚)

  • 生成模拟器和设备库
  • 脂质同时生成脂肪MyLib。一个静态的最终lib
  • 创建新的视图应用程序项目。(我没有更改任何默认设置,例如基本SDK、有效架构。)
  • 手动将MyLib.a和必要的头文件添加到应用程序项目中
  • 构建应用程序项目,它工作正常!!没有错误,没有警告
  • 错误

  • 将相同的MyLib.a和头(上面生成的)上传到HTTP直接下载服务器(工件服务器的类型)
  • 生成specs&podfile
  • 从app项目中删除所有依赖项(lib和header),这是我之前手动完成的
  • 添加pod文件和本地规范
  • “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”命令时

    fat文件中的架构:/Users/admin/Cocoapods/Project/Library/Libs/Final/MyLib.a是:armv7 armv7s i386 x86_64 arm64

    这并不是真正的架构问题,否则在我的第一次尝试中应该会失败,因为我没有CoCoapod。Cocoapods做了一些构建配置更改,这就产生了这个问题


    请帮助我解决此问题。

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

    在我的例子中,我保留了MyLib,目前它在“pod安装”时被加载,但在应用程序构建过程中失败了。 重命名为libMyLib.a后,一切都适合我。:)

    非常容易应用,但很难找到此类解决方案]


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

    +1是的,这是默认情况下
    ld
    查找库文件的方式,它应该以
    lib
    作为前缀,文件将是
    libMyLib.a
    ,而实际的
    ld
    链接器标志将是
    -lMylib