gpt4 book ai didi

ios - 本地 CocoaPods 干扰其他 pod

转载 作者:行者123 更新时间:2023-11-28 21:49:46 24 4
gpt4 key购买 nike

我正在编写一个 Swift 框架和一个 Swift iOS 应用程序,我正在尝试使用 Cocoapods 将我的框架添加到我的应用程序和其他 sdk 中。

这是我的 swift 框架的 podspec

Pod::Spec.new do |s|
s.name = "InfraCocoa"
s.version = "0.0.1"
s.summary = "A short description of InfraCocoa."
s.license = "MIT"
s.author = { "" => "" }
s.platform = :ios
s.ios.deployment_target = "7.0 "
s.source_files = "Classes", "Classes/**/*.{swift,h,m}"
end

我的 iOS 应用的 pod podfile

target 'CocoaProjectTest' do

pod 'InfraCocoa', :path => '~/Documents/workspaces/CocoaPodsTesting/Infra/InfraCocoa'
pod 'CrashlyticsFramework', '2.2.5.2'
pod 'GoogleTagManager', '3.09'
pod 'Google-Mobile-Ads-SDK', '7.0.0'
pod 'Facebook-iOS-SDK', '3.23.0'
pod 'AFNetworking', '2.5.1'

end

现在开始,如果我运行“pod install”或“pod update”,一切正常。问题是当我尝试在 Xcode(6.1.1) 中构建时。我收到一个编译错误,说这样的话 “_sqlite3_close”,引用自:

  -[TAGDataLayerPersistentStoreImpl closeDatabase] in libGoogleAnalyticsServices.a(TAGDataLayerPersistentStoreImpl.o)


(maybe you meant: _fbdfl_sqlite3_close)

经过几次谷歌搜索后,我发现这是因为我的 GoogleTagManager 在它的“Link Binary With Libraries”中缺少库“libz.dylib”和“libsqllite3.dylib”。我可以手动添加它们,它会编译,尽管这并不理想。

我决定在我的 podfile 中没有以下行的情况下进行测试,它会编译

pod 'InfraCocoa', :path => '~/Documents/workspaces/CocoaPodsTesting/Infra/InfraCocoa'

我想这可能是因为库版本有冲突,但这个 InfraCocoa 框架是完全干净和空的(做了一个 File-> New-> Project -> CocoaTouch Framework)。

有什么想法吗? (应用程序项目也是空的和干净的)

最佳答案

我认为您可以覆盖 PodFile 中的 GoogleTagManager.podspec 并简单地将缺少的库添加到文件的修改版本中。

类似于:

pod 'GoogleTagManager', :podspec => './GoogleTagManager.podspec.json'

在 podspec 中:

"libraries": ["GoogleAnalyticsServices", "sqlite3", "z"], 

似乎正在使用 cocoapods 0.36.rc.1

关于ios - 本地 CocoaPods 干扰其他 pod,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28753361/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com