Cocoapods podspec问题

pro*_*stm 6 static-libraries cocoapods xcode5

我一直在重构一些代码并创建了一个静态库,我现在正在一些用于少数应用程序的框架中使用.我正在使用cocoapods,并且无法正确地将我的新静态库集成到podspec中.

我发现构建失败了,因为构建中缺少静态库.如果我手动将静态库添加到最终应用程序,框架和应用程序工作正常.构建团队生成应用程序的最终版本,因此我只负责更新框架的podspec.

我是否可以修改pod规范以将静态库设置为在最终应用程序的构建阶段显示的链接库?

更新:

将静态库添加到我的子规范的framework.library属性时,我得到了 library not found for -lMyStaticLib

SUBSPEC供参考:

  s.subspec 'MyStaticLibrary' do |msl|
    mss.source_files = 'FrameworkSource/My-Static-Library/*.{h,a}'
    msl.library = 'MyStaticLib'
    msl.xcconfig = { 'HEADER_SEARCH_PATHS' => '"$(SRCROOT)/Pods/My-Framework-Name/FrameworkSource/My-Static-Library"/**', 'LIBRARY_SEARCH_PATHS' => '"$(SRCROOT)/Pods/My-Framework-Name/FrameworkSource/My-Static-Library"/**' }
    #msl.frameworks =  'MyStaticLib'
  end
Run Code Online (Sandbox Code Playgroud)

更新2:我将属性更改为msl.vendored_libraries = 'MyStaticLib'podspec中的已验证路径.一切似乎都要结束.我仍然遇到构建错误.当我为一个设备构建时(我在为模拟器构建时得到了相同的错误,但对于i386):

Undefined symbols for architecture armv7:
  "_OBJC_CLASS_$_MyStaticLibrary", referenced from:
      objc-class-ref in MyFramework(FileInFramework.o)
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)

我还再次验证,如果我只是去应用程序的构建阶段并遍历Pods文件夹并手动将MyStaticLibrary.a文件添加到它构建的项目中而没有问题.

小智 5

尝试将您的MyStaticLib.a文件重命名为libMyStaticLib.a. 我也遇到了错误,并通过在文件名中library not found for -lMyStaticLib添加前缀来修复它。lib


Mis*_*Moo 3

您绝对可以在 podspec 中添加该框架。查看有关 Podspec 格式的 wiki 条目。


编辑:啊,您要寻找的是0.23.0中添加的vendored_frameworks或。看起来这些还没有被添加到维基百科中。现在就更新!vendored_libraries