How to add custom project configurations to Xcode when using CocoaPods?
Solution 1:
OK, so half-way through writing this question I figured it out myself (yay rubber ducking). Here's the solution for next generations:
Essentially, you have to add an explicit dependency on the Pods target to your application scheme.
The way you do it, is: edit your application scheme, go to the Build section, and add the Pods target above your application target. You should see something like this:
And it will just work.
As for the CocoaPods warnings on pod install
, you need to use the xcconfig
files generated by CP for each of your Xcode configurations. The way you do it is:
- find the .xcconfig files in
Pods/Target Support Files
- drag and drop them to "Pods" group in your Xcode project (add reference only. Don't copy to target or add to the build)
- Click on the project in project navigator, and select the project itself (not one of targets). Go to Info, and under Configurations set the right .xcconfigs to each configuration and target in the "Based on Configuration file" column.
You'll also need something like this in your Podfile to let CocoaPods know which of your Xcode configurations are "debug" (unoptimized), which are "release":
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,
}
Not exactly related to CocoaPods, but if you happen to have some other (sub-project) dependencies other than CP, you'll also need to do two things:
- add explicit dependencies on the sub-project target (like on the screenshot above)
- rename/add configurations in your sub-project so that they are the same as your main project. (Otherwise, Xcode just doesn't know which configuration to use with your sub-project)
Solution 2:
Add this line in your config file, just like import a header file:
#include "Pods/Target Support Files/Pods/Pods.debug.xcconfig"
NOTE: it's #include
, not #import
Solution 3:
Another solution without the need to add explict dependencies to any schema nor draging and dropping stuff:
How to add custom project configurations to Xcode when using CocoaPods
Usually when you add custom configurations to your xcode project (other than Debug and Release) the thing you should do is run pod install
. This will fix/remake the changes that cocoapods usually do.
How to get ride of CocoaPods did not set the base configuration of your project because...
warning
On the Configurations
settings under Info
tab, on project level, you need to set the base configuration to use (generated when running pod install)
And dont forget to tell cocoapods what config it should use, in other words map your condfigurations with pods configurations, otherwise your compile time might dramatically increase