ios - 使用 CocoaPods 时如何向 Xcode 添加自定义项目配置?

标签 ios objective-c xcode cocoapods

我有一个 iOS/OS X Xcode 项目,我在其中使用 CocoaPods,我似乎无法弄清楚如何在不完全破坏构建的情况下添加我自己的项目配置(除了调试和发布) .

在项目中,我有许多目标,用于两个平台上的应用程序及其应用程序扩展。 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

现在我遇到了问题。到目前为止,我的项目中只有默认的“调试”和“发布”配置。我想更改它们并为不同的配置文件/捆绑 ID 组合添加一些新的。

……我被困住了。我不知道该怎么做。

问题的第一个迹象是警告 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 NozbeToday to Pods/Target Support Files/Pods-iOS/Pods-iOS.dev debug.xcconfig or include the Pods/Target Support Files/Pods-iOS/Pods-iOS.dev debug.xcconfig in your build configuration.

我不知道这意味着什么以及如何解决这个问题。无论哪种方式,项目都不会构建——在最好的情况下,我会收到一个链接器错误,说它找不到 Pods-something.a...

最佳答案

好的,所以在写这个问题的中途,我自己想通了(是的,橡皮闪避)。这是下一代的解决方案:

本质上,您必须将对 Pods 目标的显式依赖添加到您的应用程序方案中。

您的做法是:编辑您的应用程序方案,转到“构建”部分,然后将 Pods 目标添加到您的应用程序目标上方。您应该会看到如下内容:

enter image description here

它会起作用的。


至于 pod install 上的 CocoaPods 警告,您需要使用 CP 为您的每个 Xcode 配置生成的 xcconfig 文件。你这样做的方式是:

  • Pods/Target 支持文件
  • 中找到 .xcconfig 文件
  • 将它们拖放到 Xcode 项目中的“Pods”组(仅添加引用。不要复制到目标或添加到构建中)
  • 在项目导航器中单击项目,然后选择项目本身(不是目标之一)。转到 Info,在 Configurations 下,将正确的 .xcconfigs 设置为“基于配置文件”列中的每个配置和目标。

您还需要在 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 之外的其他(子项目)依赖项,你还需要做两件事:

  • 在子项目目标上添加显式依赖项(如上面的屏幕截图所示)
  • 在您的子项目中重命名/添加配置,使其与您的主项目相同。 (否则,Xcode 只是不知道您的子项目使用哪种配置)

关于ios - 使用 CocoaPods 时如何向 Xcode 添加自定义项目配置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30102976/

相关文章:

ios - 如何从 JSON 加载并解析到 iOS 5 上的 tableView

ios - 如何将 NSManagedObjectContext 从 AppDelegate 分配给 TabBased 应用程序中的 ViewController?

objective-c - 仪器内存警告调试

ios - swift - 我可以连接到 socket.io 服务器,但我无法发出事件

ios - 如何将视频从 "file:///"保存到 Swift 中的相机胶卷?

ios - 电话号码的使用和混淆重新升级 iOS

ios - UIViews 和 CGAffineTransformMakeScale

iphone - 仅在应用程序处于后台时获取位置更新

ios - 是否可以从生成的 .strings 文件中排除 Storyboard中的标签?

ios - 在 iOS 6 上保存联系人时出现 Phonegap ContactError