【发布时间】:2016-07-05 10:54:31
【问题描述】:
我想为我的 Xcode 项目使用相同的 .xcconfig 文件,以便我在所有项目中自动拥有相同的警告设置。我很想创造例如我通过Podfile 包含一个Cocoapod,然后将配置文件复制过来或从我的Xcode 项目中引用它们。
有没有办法做到这一点?
【问题讨论】:
我想为我的 Xcode 项目使用相同的 .xcconfig 文件,以便我在所有项目中自动拥有相同的警告设置。我很想创造例如我通过Podfile 包含一个Cocoapod,然后将配置文件复制过来或从我的Xcode 项目中引用它们。
有没有办法做到这一点?
【问题讨论】:
要求
据我了解,您的要求是:
可能的解决方案
据我所知,不可能从 Cocoapod 运行脚本来操作包含 Xcode 的项目。幸运的是,来自 Cocoapods 的人提供了一个名为 xcodeproj 的 Ruby gem 来操作 Xcode 项目和工作区,包括构建设置。
我一直在使用这个 gem 开发一个工具 (phoenx) 来自动生成基于元数据文件(很像 Podfiles)的 Xcode 项目和工作区。我已将相关代码部分提取到一个名为 xcconfig 的新 ruby gem 中。
Xcconfig
Xcconfig 可以下载和配置任何 Xcode 项目文件上的 xcconfig 文件。 Configfile 指定配置文件的来源(可选)以及如何将这些 xcconfig 文件应用到您的项目。如果文件不是项目的一部分,它将添加它们(连同子文件夹的组)并相应地配置项目。如果您更改全局存储库中的 xcconfig 文件,您只需再次运行 xcconfig 即可同步您的存储库。
Configfile 应与您的 xcodeproj 文件位于同一文件夹中(就像 Podfile 一样)。
# Specify where to download the config files (optional)
source "git@github.com:xyz/Configuration"
# Specify the name of the project, e.g., MyProject if your project file is MyProject.xcodeproj
Project.new "MyProject" do |project|
# Specify xcconfig files for each configuration on project level (paths are relative t
project.config_files["Release"] = "Configuration/project_release.xcconfig"
project.config_files["Debug"] = "Configuration/project_debug.xcconfig"
# Specify target and xcconfig files for each configuration
project.target "test" do |target|
target.config_files["Debug"] = "Configuration/debug.xcconfig"
end
end
您可以将此 gem 与 cocoapods 集成或单独使用。如果您想尝试一下,可以使用sudo gem install xcconfig 安装它,然后使用Configfile 在项目目录中运行xcconfig。 sources 可以在我的 GitHub 帐户上找到。
希望对您有所帮助。
【讨论】:
您可以create a custom project template 并将具有所需设置的名为___FILEBASENAME___.xcconfig 的文件放入您的.xctemplate 捆绑包中。然后您可以在创建新项目时选择此模板,它将自动具有您指定的默认设置。
【讨论】: