我有一个框架,我作为pod连接到我的项目。
我需要在框架中连接Google地图。我试图在podspec
文件中创建它:
s.dependency 'GoogleMaps'
s.dependency 'GooglePlaces'
但是我在pod install
期间发现错误,“目标具有包含静态二进制文件的传递依赖项”。
我尝试将此代码添加到podfile
:
pre_install do |installer|
def installer.verify_no_static_framework_transitive_dependencies; end
end
但它似乎不起作用。
我还尝试将GoogleMaps.framework
,GoogleMapsCore.framework
和GooglePlaces.framework
复制到我的框架中并将其连接起来:
s.vendored_frameworks = "MyFrameworkFolder/GoogleMaps/*.framework"
但在编译包含pod的项目时遇到错误:无法构建Objective-C模块'MyFramework'
我尝试使用
在post install hook中修复它 if target.name.start_with?('MyFramework')
config.build_settings["OTHER_LDFLAGS"] = '$(inherited) "-ObjC"'
但没有效果。
有没有人有解决这类问题的经验?
答案 0 :(得分:2)
在使用Firebase依赖项时遇到了类似的问题,但是我不确定我找到的解决方案是否也会应用你的问题,所以pelase,请带上一粒盐。
尝试在podspecs
中添加这些行:
spec.pod_target_xcconfig = {
"OTHER_LDFLAGS" => '$(inherited) -framework "GoogleMaps" -framework "GooglePlaces",
"CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES" => 'YES',
"FRAMEWORK_SEARCH_PATHS" => '$(inherited) "${PODS_ROOT}/GoogleMaps/Frameworks" "${PODS_ROOT}/GooglePlaces/Frameworks",
}
希望有所帮助
答案 1 :(得分:2)
CocoaPods 1.4.0添加了静态框架podspec属性,该属性指示CocoaPods构建静态框架而不是动态框架和以依赖静态vendored_frameworks。
将s.static_framework = true
添加到您的podspec。