在主目标中包含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.debug
或Pods.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