在主目标中包含Pod,而不是在WatchKit扩展中

我在当前项目中添加了一个WatchKit扩展。 该项目使用Cocoapods 0.36.1来添加一些框架,但现在我想从WatchKit扩展项目中排除一些窗格。

WatchKit扩展项目并不需要我在正常目标中使用的很多框架,但是在更改我的Podfile之后,我无法使Cocoapods正确工作。

我使用use_frameworks! 在我的Podfile中,但运行pod install我得到以下消息:

 [!] 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. 

我没有改变我的基本configuration的任何设置,但我的3个目标中的2个有正确的Pods.debugPods.release设置。 没有基本configuration的是WatchKit 应用程序

我的原始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项目中排除某些窗格的地方。

 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/AFNetworking/AFNetworking.git' pod 'CocoaLumberjack', '~> 2.0.0' pod 'MagicalRecord', :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)', '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 

CocoaPods输出的警告是由于两个CocoaPods目标试图链接到应用程序中的单个目标(不支持)。

也就是说,你有一个明确的目标HomeHandler 你也链接到HomeHandler的link_with "HomeHandler", "HomeHandler WatchKit Extension"的无名目标。

我的build议是修改你的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: '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 target 'HomeHandler WatchKit Extension' do shared_pods end