Ios 如何使用CoCoapod基于两个静态库创建动态框架(Swift)
我想创建一个动态框架,将两个第三方框架与静态库结合起来,然后将其作为pod添加到我的项目中。 这是他们的podspec文件Ios 如何使用CoCoapod基于两个静态库创建动态框架(Swift),ios,swift,frameworks,cocoapods,podspec,Ios,Swift,Frameworks,Cocoapods,Podspec,我想创建一个动态框架,将两个第三方框架与静态库结合起来,然后将其作为pod添加到我的项目中。 这是他们的podspec文件 (顺便说一下,这个在.framework文件中缺少modulemap) 我试图在我的podspec文件中将它们添加为s.dependency,但出现以下错误 Pods错误-目标具有包含静态二进制文件的可传递依赖项 尝试将它们作为s.vendored\u框架包含,但得到了以下结果,无法使用给定的解决方案进行变通 你能帮我指点一下如何处理这件事吗?稍后我会告诉你 发布一些
- (顺便说一下,这个在.framework文件中缺少modulemap)
s.dependency
,但出现以下错误
Pods错误-目标具有包含静态二进制文件的可传递依赖项
尝试将它们作为s.vendored\u框架包含,但得到了以下结果,无法使用给定的解决方案进行变通
你能帮我指点一下如何处理这件事吗?稍后我会告诉你
发布一些测试项目来更仔细地看问题。现在,我只是有太多不同的测试项目不起作用,我甚至不知道发布到Github来显示什么
在我的大多数尝试中,我最终无法在框架swift文件中使用Import IndoorsSDK/IndoorAtlas,因为“没有这样的模块”错误
感谢您的帮助。最后,我找到了解决方案。所以,万一有人遇到类似的问题,我就把它贴在这里
我的podspec
文件(除其他行外)包含以下内容
#// one library added as dependency, another as vendored_frameworks
#// because it lacks modulemap, so it was added manually to IndooRS framework
spec.dependency 'IndoorAtlas'
spec.vendored_frameworks = 'SKNavigation/Frameworks/IndoorsSDK.framework'
#// following lines fix linking issues so our pod would see dependency modules
spec.pod_target_xcconfig = {
'FRAMEWORK_SEARCH_PATHS' => '$(inherited) $(SRCROOT)/**',
'OTHER_LDFLAGS' => '$(inherited) -undefined dynamic_lookup'
}
以及添加到缺少模块映射的框架中的模块映射
module IndoorsSDK [system] {
header "Headers/IndoorsSDK.h"
header "Headers/Indoors.h"
export *
link framework "CoreMotion"
link framework "CoreBluetooth"
link "c++"
}
最新的一点,podfile
应该包含以下内容以隐藏传递依赖项错误
pre_install do |installer|
def installer.verify_no_static_framework_transitive_dependencies; end
end
可能就这些了