我有一个iOS / OS X Xcode项目,我正在使用CocoaPods,我似乎无法弄清楚如何在不完全炸毁构建的情况下添加我自己的项目配置(除了Debug和Release)
在项目中,我有许多目标,适用于两个平台及其应用扩展程序上的应用。 Xcode工作区当然也有Pods项目。
因为该项目为iOS和Mac构建目标,所以我使用CocoaPods“目标”将他们的pod分组在一起。我的Podfile看起来像这样:
source 'https://github.com/CocoaPods/Specs.git'
target :iOS do
platform :ios, '7.1'
link_with 'iOS', 'NozbeToday', 'NozbeShare', 'NozbeWatch'
# pods...
end
target :Mac do
platform :osx, '10.9'
link_with 'Mac'
# pods...
end
现在我遇到了问题。到目前为止,我的项目中只有默认的“Debug”和“Release”配置。我想更改它们并为不同的配置文件/捆绑ID组合添加一些新的。
......我被困住了。我无法弄清楚如何做到这一点。
问题的第一个迹象是针对每个目标/配置组合发出警告pod install
:
[!] CocoaPods没有设置项目的基本配置 因为您的项目已经有自定义配置集。为了 CocoaPods集成工作,请设置基础 目标
NozbeToday
到Pods/Target Support Files/Pods-iOS/Pods-iOS.dev debug.xcconfig
的配置或包含Pods/Target Support Files/Pods-iOS/Pods-iOS.dev debug.xcconfig
in 你的构建配置。
我无法弄清楚它意味着什么,以及如何解决这个问题。无论哪种方式,项目都不会构建 - 在最好的情况下,我会得到一个链接器错误,说它无法找到Pods-something.a
......
答案 0 :(得分:41)
好的,所以写这个问题的中途我自己想出来了(yay rubber ducking)。这是下一代的解决方案:
基本上,您必须在Pods目标上添加对应用程序方案的显式依赖。
您的方法是:编辑您的应用程序方案,转到Build部分,然后添加Pods目标以上您的应用程序目标。你应该看到这样的东西:
它会起作用。
对于pod install
上的CocoaPods警告,您需要为每个Xcode配置使用CP生成的xcconfig
个文件。你这样做的方式是:
Pods/Target Support Files
你的Podfile中也需要这样的东西,让CocoaPods知道哪些Xcode配置是“调试”(未经优化),这是“发布”:
project '1Nozbe', {
'iOS 1 Dev Debug' => :debug,
'iOS 2 Dev AdHoc' => :release,
'iOS 3 Release Debug' => :debug,
'iOS 4 Release AdHoc' => :release,
'iOS 5 Release AppStore' => :release,
}
与CocoaPods不完全相关,但如果您碰巧有除CP之外的其他(子项目)依赖项,您还需要做两件事:
答案 1 :(得分:8)
在配置文件中添加此行,就像导入头文件一样:
#include "Pods/Target Support Files/Pods/Pods.debug.xcconfig"
注意:它是#include
,而不是#import
答案 2 :(得分:4)
无需将显式依赖项添加到任何架构或拖放东西的另一种解决方案:
使用CocoaPods时如何向Xcode添加自定义项目配置
通常,当您将自定义配置添加到xcode项目(“调试”和“发布”除外)时,您应该要做的事情就是运行pod install
。这将修复/重新制作cocoapods通常所做的更改。
如何获得CocoaPods did not set the base configuration of your project because...
警告
在项目级别的Configurations
标签下的Info
设置上,您需要设置要使用的基本配置(运行pod install时生成)
也不要忘记告诉cocoapods应该使用什么配置,换句话说,map your condfigurations with pods configurations,否则您的编译时间可能会大大增加