Vla*_*lad 13 iphone frameworks weak-linking ios cocoapods
我正在尝试使用Xcode 6提供的新模板来构建一个iOS框架(Test.framework)来创建Cocoa Touch Frameworks.该框架具有Podfile中指定的不同依赖关系(如AFNetworking或FacebookSDK).我不希望将依赖项包含在框架中,我只想链接它们.
问题是,当我构建框架时,libPods.a被链接并包含在内. 问:我如何链接libPods.a库,但不包含在框架中?
更多细节:
我已经阅读了弱链接:https: //developer.apple.com/library/ios/documentation/MacOSX/Conceptual/BPFrameworks/Concepts/WeakLinking.html 但是我没有太多使用项目设置的经验,所以我'我不是专业人士.
我试图把libPods.a作为"可选"但没有改变,依赖仍然包括在内.
我尝试从Build Phases中的"Link Binary With Libraries"部分删除libPods.a,但是我收到此错误(在清理项目文件夹并再次构建之后):
ld: library not found for -lPods-MyFramework-AFNetworking
Run Code Online (Sandbox Code Playgroud)
我试图从"其他链接器标志"中删除所有标志,但它给了我未定义的符号:
Undefined symbols for architecture armv7:
"_OBJC_CLASS_$_FBSession", referenced from:
objc-class-ref in TestClass.o
ld: symbol(s) not found for architecture armv7
Run Code Online (Sandbox Code Playgroud)
以下是包含库的干净项目的源代码:https: //www.dropbox.com/sh/0ymuzw6kiagz02j/AABzyHiZVaQQvBEnjBgRBq3ua?dl = 0
下面的 post_install 代码位于 Podfile 的底部。它允许您指定所需的目标以及将弱链接的框架。我们可以利用它来弱链接动态框架目标内的框架,但在编译核心应用程序时继续正确链接。
targets_to_weaklink=['Target1']
frameworks_to_weaklink=['Framework1']
post_install do |installer|
targets_to_weaklink.map!{|t| t="Pods-#{t}"}
installer.pods_project.targets.each do |target|
next unless targets_to_weaklink.include?(target.name)
target.build_configurations.each do |config|
base_config_reference = config.base_configuration_reference
unless base_config_reference.nil?
xcconfig_path = base_config_reference.real_path
xcconfig = File.read(xcconfig_path)
frameworks_to_weaklink.each do |framework|
xcconfig = xcconfig.gsub(/-framework "#{framework}"/, "-weak_framework \"#{framework}\"")
end
File.open(xcconfig_path, "w") { |file| file << xcconfig }
end
end
end
end
Run Code Online (Sandbox Code Playgroud)
我还不能发表评论,所以我会在这里回答。我认为你不能那样做。Cocoapods 创建一个静态库而不是动态库,因此当您编译并嵌入到框架中时,所有代码都应该在那里。
Cocoapods 文档,请转到“幕后发生了什么?” 详细解释
如果您想为一些常用的 pod 组合一些基本配置,那么最好的方法可能是制作一个自定义的 cocoapod 并将其他 pod 作为依赖项。这样您就可以依靠 cocoapods 来管理版本并根据您的喜好更新代码。我自己也在使用类似的方法,并且对结果非常满意。
| 归档时间: |
|
| 查看次数: |
2135 次 |
| 最近记录: |