我在当前项目中添加了WatchKit扩展.该项目使用
Cocoapods 0.36.1添加一些框架,但现在我想从WatchKit扩展项目中排除一些pod.
WatchKit扩展项目不需要我在我的正常目标中使用的很多框架,但是在改变我的Podfile后我无法使Cocoapods正常工作.
我用use_frameworks!在我的Podfile中,但在运行pod安装后,我收到以下消息:
[!] CocoaPods did not set the base configuration of your project because your project already has a custom config set. In order for CocoaPods integration to work at all,please either set the base configurations of the target `HomeHandler` to `Pods/Target Support Files/Pods-HomeHandler/Pods-HomeHandler.debug.xcconfig` or include the `Pods/Target Support Files/Pods-HomeHandler/Pods-HomeHandler.debug.xcconfig` in your build configuration. [!] CocoaPods did not set the base configuration of your project because your project already has a custom config set. In order for CocoaPods integration to work at all,please either set the base configurations of the target `HomeHandler` to `Pods/Target Support Files/Pods-HomeHandler/Pods-HomeHandler.release.xcconfig` or include the `Pods/Target Support Files/Pods-HomeHandler/Pods-HomeHandler.release.xcconfig` in your build configuration. [!] CocoaPods did not set the base configuration of your project because your project already has a custom config set. In order for CocoaPods integration to work at all,please either set the base configurations of the target `HomeHandler WatchKit Extension` to `Pods/Target Support Files/Pods-HomeHandler WatchKit Extension/Pods-HomeHandler WatchKit Extension.debug.xcconfig` or include the `Pods/Target Support Files/Pods-HomeHandler WatchKit Extension/Pods-HomeHandler WatchKit Extension.debug.xcconfig` in your build configuration. [!] CocoaPods did not set the base configuration of your project because your project already has a custom config set. In order for CocoaPods integration to work at all,please either set the base configurations of the target `HomeHandler WatchKit Extension` to `Pods/Target Support Files/Pods-HomeHandler WatchKit Extension/Pods-HomeHandler WatchKit Extension.release.xcconfig` or include the `Pods/Target Support Files/Pods-HomeHandler WatchKit Extension/Pods-HomeHandler WatchKit Extension.release.xcconfig` in your build configuration.
我没有更改基本配置的任何设置,但我的3个目标中有2个具有正确的Pods.debug或Pods.release设置.没有基本配置的是WatchKit App.
我原来的Podfile
platform :ios,'8.0' use_frameworks! source 'https://github.com/artsy/Specs.git' source 'https://github.com/CocoaPods/Specs.git' pod 'AFNetworking',:git => 'https://github.com/AFNetworking/AFNetworking.git' pod 'CocoaLumberjack','~> 2.0.0' pod 'MagicalRecord',:git => "https://github.com/magicalpanda/MagicalRecord.git" pod 'PureLayout' pod 'UAProgressView' pod 'UICKeyChainStore' pod 'XLForm',git: 'git@github.com:xmartlabs/XLForm.git' pod 'Classy',git: 'git@github.com:depl0y/Classy.git' pod 'Reveal-iOS-SDK',:configurations => ['Debug'] pod 'JBChartView','~> 2.8.9' pod 'RFQuiltLayout' pod 'HUMSlider','~> 1.0' pod 'SwiftEventBus',:git => 'https://github.com/cesarferreira/SwiftEventBus.git' post_install do |installer_representation| installer_representation.project.targets.each do |target| if target.name == "Pods-AFNetworking" target.build_configurations.each do |config| config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] = ['$(inherited)','AF_APP_EXTENSIONS=1'] end end if target.name == "Pods-PureLayout" target.build_configurations.each do |config| config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] = ['$(inherited)','PURELAYOUT_APP_EXTENSIONS=1'] end end end end
我改变了Podfile
这是我想从WatchKit项目中排除某些pod的地方.
platform :ios,'8.0' use_frameworks! source 'https://github.com/artsy/Specs.git' source 'https://github.com/CocoaPods/Specs.git' link_with "HomeHandler","HomeHandler WatchKit Extension" pod 'AFNetworking',:git => "https://github.com/magicalpanda/MagicalRecord.git" pod 'UICKeyChainStore' target :HomeHandler do pod 'XLForm',git: 'git@github.com:xmartlabs/XLForm.git' pod 'UAProgressView' pod 'Classy',git: 'git@github.com:depl0y/Classy.git' pod 'Reveal-iOS-SDK',:configurations => ['Debug'] pod 'JBChartView','~> 2.8.9' pod 'RFQuiltLayout' pod 'HUMSlider','~> 1.0' pod 'SwiftEventBus',:git => 'https://github.com/depl0y/SwiftEventBus.git' pod 'PureLayout' end post_install do |installer_representation| installer_representation.project.targets.each do |target| if target.name == "Pods-AFNetworking" target.build_configurations.each do |config| config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] = ['$(inherited)','PURELAYOUT_APP_EXTENSIONS=1'] end end end end
解决方法
CocoaPods输出的警告是由于两个CocoaPods目标试图链接到应用程序中的单个目标(不支持).
即,您有一个明确的目标HomeHandler,并且您使用link_with“HomeHandler”,“HomeHandler WatchKit Extension”将无名目标链接到HomeHandler.
我的建议是修改你的Podfile,看起来如下所示:
platform :ios,'8.0' use_frameworks! source 'https://github.com/artsy/Specs.git' source 'https://github.com/CocoaPods/Specs.git' def shared_pods pod 'AFNetworking',:git => 'https://github.com/AFNetworking/AFNetworking.git' pod 'CocoaLumberjack','~> 2.0.0' pod 'MagicalRecord',:git => "https://github.com/magicalpanda/MagicalRecord.git" pod 'UICKeyChainStore' end target 'HomeHandler' do shared_pods pod 'XLForm',:git => 'https://github.com/depl0y/SwiftEventBus.git' pod 'PureLayout' end target 'HomeHandler WatchKit Extension' do shared_pods end