ios - 通过 TeamCity 自动修改 Xcode 构建信息

标签 ios continuous-integration teamcity

将直接的 XCode 与 TeamCity 集成非常简单。在最新版本中,它对构建 iOS 项目的原生支持似乎不错。

但是,如何在构建之前自动对项目自身进行修改呢?像这样的东西:

  • 根据 TeamCity 值设置版本字符串/构建计数器
  • 根据配置类型设置构建标识符

解决这个问题的最佳做法是什么?当然,我可以通过脚本提取和修改 Xcode 项目,但这看起来很困惑且容易出错。

还有其他选择吗?

是否可以让 Bundle IdentifierVersionBuild 等从我可以创建的外部文件中提取它们的值构建之前的构建步骤?

此外 - 是否有任何 API 允许 TeamCity 存档应用程序并将其提交到 (Apple) TestFlight?

最佳答案

您可以轻松地使用脚本来设置包 ID、版本和内部版本号 - 这些都存储在 Info.plist 文件中,它只是一个常规的属性列表 (XML) 文件。

您可以在此处找到示例脚本,它将内部版本号设置为我们的 continuous integration service的相关环境变量:https://github.com/bitrise-io/bitrise-script-collection/blob/master/bash/set_xcode_project_build_number.sh

关于 iTunes Connect 部署:没有官方 API 可以将应用程序部署到新的 Apple 服务,但您可以找到一些可以提供此功能的 gem。我们使用 shenzhendeliver , 通过 Bitrise/Open Step Lib build - steps .

关于ios - 通过 TeamCity 自动修改 Xcode 构建信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29155843/

相关文章:

github - TeamCity 在多 VCS 设置中构建单独的拉取请求

ios - 将 'NSError *const __strong *' 发送到类型为 'NSError *__autoreleasing *' 的参数会更改指针的保留/释放属性

iphone - 根据 UILabel 大小展开 UITableViewCell

node.js - `npm install` 总是从 package.json 安装所有东西

.net - 与 Mercurial、MSBuild、ASP.NET 持续集成

teamcity - 我可以让 TeamCity 代理将注册表设置用作代理属性吗?

javascript - 在 TeamCity 上为 Karma 配置代码覆盖率报告

ios - 你如何在 react-native 中声明一个 'const'?

ios - NSPredicate 对象模型数组过滤器无法在 Swift 4.0 中崩溃

github - Azure Devops ci 管道无法构建 asp.net core 项目,因为它位于 github repo 的子文件夹中