我在几个项目中使用自有和外部pod的组合。如果我正在开发或更新pod,我使用Podfile.local来避免对每个更改进行版本控制/标记。这里的问题,如果我必须更新Podfile以注释掉我在Podfile.local中使用的每个pod以避免错误。
当两个文件都有相同的pod以防止出现这种错误时,有没有办法告诉cocoapods应该考虑Podfile.local而不是Podfile:
分析依赖项[!]有多个依赖项
Analytics
中Podfile
的不同来源:
- Analytics(HEAD)
- Google Analytics(来自
~/Documents/analytics_ios
)
我的Podfile:
source 'https://github.com/CocoaPods/Specs.git'
source 'http://gitlab.whatever.com/podfolder/cocoapods_ios.git'
platform :ios, '7.0'
# Allows per-dev overrides
local_podfile = "Podfile.local"
eval(File.open(local_podfile).read) if File.exist? local_podfile
pod 'Advertising/Dfp', :head
pod 'RSSParser', :head
pod 'DTCoreText'
pod "AFNetworking", "~> 2.0"
pod 'OurKeyboard', :head
pod 'VideoPlayer/GooglePrerollForAdMob', :head
pod 'Analytics', :head
pod 'AppVersioning', :head
我的Podfile.local:
pod 'Analytics', :path => '~/Documents/analytics_ios'
答案 0 :(得分:2)
由于CocoaPods 0.35并且从未得到官方支持,因此Podfile.local
技巧不再可能
见https://github.com/CocoaPods/CocoaPods/issues/2860
答案 1 :(得分:0)
在配置中的现有应用程序中的观看扩展程序中安装pod时出现同样的问题: - Swift-3,Xcode-8.1和Pod-version 1.0.1 。< / p>
现有Podfile出现以上错误:
platform :ios, ‘10.0’ source 'https://github.com/CocoaPods/Specs.git' use_frameworks! target "DemoApp" do pod 'SwiftQRCode' pod 'Alamofire' post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| config.build_settings['SWIFT_VERSION'] = '3' end end end target 'WatchExtension' do platform :watchos, '2.0' pod 'Alamofire' pod 'SwiftyJSON' end
pod install
解决方案:
创建可在主应用程序包和观看操作系统扩展之间共享的共享定义: -
Updated podfile : source 'https://github.com/CocoaPods/Specs.git' #Create common defination to share the library between app and extension def shared_pods pod'Alamofire' pod 'SwiftyJSON' end target "DemoApp" do platform :ios, '10.0' use_frameworks! shared_pods post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| config.build_settings['SWIFT_VERSION'] = '3' end end end target 'WatchExtension' do platform :watchos, '2.0' use_frameworks! shared_pods end
因此,podfile中的更改解决了上述“使用不同来源的多个依赖项...... ”的问题。
需要更新图书馆搜索路径: -
答案 2 :(得分:0)
我的问题是我有两个相同的包裹。一个已被弃用,另一个是我刚刚安装的,但我没有卸载已弃用的软件包。因此,新程序包向我的Podfile添加了一个依赖关系,而弃用的程序包则添加了相同的依赖关系,但来自不同的来源。我将卸载已弃用的软件包,并且错误消失了。