【问题标题】:Generating IOS iPA file on server side with new assets and bundle id在服务器端使用新资产和捆绑 ID 生成 IOS iPA 文件
【发布时间】:2020-04-08 17:41:52
【问题描述】:

应用程序功能 - 我已经创建了一个名为 (ABC) 的基于事件的应用程序,它是客户的产品,所以如果 ABC 的客户想要组织一个活动,他们可以使用应用程序在那里注册活动(ABC) 或者他们可以要求一个新的应用程序(通常是 abc 的克隆),并进行一些自定义。

我们做什么 - 为此,我们只需创建一个基本代码的克隆并在每个克隆中进行一些更改。以下是我们在每个克隆中所做的更改。

1- 应用图标、应用名称、应用启动、Facebook id、LinkedIn id、Twitter 密钥、Urban-airship 密钥、捆绑 id、证书、事件 id。

在这里我想提一下,每个克隆都将来自不同的开发者帐户。

每当新的克隆需求出现时,我们都会在 xCode 中手动执行所有这些操作,然后创建用于客户端测试的构建,然后与客户端共享 diawi 链接以进行测试。

我想要做什么 - 所以我们只是想在上面添加一些自动化,我想在服务器上放置基础代码或基础代码的 ipa,现在每当新的应用程序需求出现时,我们将在 cms 上为客户提供一个选项,以上传新克隆所需的所有必需详细信息,例如(应用图标、应用名称、应用启动、Facebook id、LinkedIn id、Twitter 密钥、Urban-airship 密钥、捆绑 id、证书、 event id) 以及他何时提交详细信息,我们只需要在服务器上构建应用程序并希望下载带有新闻资产和详细信息的新 ipa,以便客户端可以安装应用程序进行测试。

问题 - 是否可以从 CMS 上传所有详细信息并使用新上传的数据在服务器端构建项目。如果是,那么我们必须遵循什么流程?

【问题讨论】:

  • 理论上是的,这是可能的,you 可以对项目和 Xcode 进行的所有操作都可以通过命令行调用来完成。您正在运行 Mac OS 服务器吗?
  • 嗨 @luk2302 感谢您的回复,现在我们还没有设置任何服务器,但如果我们将代码放在服务器上,它将是 MAC OS 服务器。但我的问题是我们将为所有这些流程进行哪些流程。

标签: ios objective-c swift xcode continuous-integration


【解决方案1】:

简答:

在线持续集成+快车道

长答案:

这很有可能,但您需要一个持续集成系统,例如 circleci 或 jenkins 或 bitrise。

例如,在 bitrise 上,您可以创建一个应用程序,链接到 git 存储库。每个构建都可以触发:

  • 手动
  • 关于一个特殊的 git 事件(例如一个标签)
  • 每小时/每天/每周...等
  • 在带有特殊参数的传入 webhook 上

这最后一种可能性可能是您的解决方案(但需要一些工作)。

我所看到的,在一个简短的(而不是完整的链)中:

  • 在服务器端,客户端推送/创建一个包含所有所需资产的新应用
  • Webhook 由这些 ids/assets/urls 触发
  • CircleCi/Bitrise 使用这些数据触发构建
  • 触发了script,而不是要启动Fastlane 的循环ci 构建
    • 更加高效和可定制
  • fastlane 使用所有这些数据触发给定的lane,如下所示:
fastlane -iOS -lane build -fbid _XX_ -twid _YY_ -appicon _IC_ -bundleIdentifier __BUNDLEID__


感谢fastlane,您可以轻松:

  • 从“白标”应用重建项目
  • 生成资产(即您的启动画面和应用图标)
  • 与您的开发者帐户通信以创建应用(应用 ID、配置文件)
  • 在不同的方案上构建应用程序,和/或使用不同的包标识符
  • 生成存档
  • 在 TestFlight、epicenter 或 CircleCI 新测试平台上发布您的 adhoc/appstore 应用程序
  • 自动发布对此应用的评论

一些链接:

https://www.bitrise.io

https://circleci.com

https://fastlane.tools

我的圣经:

https://docs.fastlane.tools

你的想法是雄心勃勃的,但有一些工作可以完全完成! 享受吧!

朱利安

【讨论】:

  • 嗨@jlngdt 感谢您的回答,我们希望开发人员在新的克隆需求出现时不应该参与其中,因为所有应用程序的基本代码都是相同的。但是在持续集成中,我们必须手动更改 bundle id 、 assets 和其他细节,然后我们必须将代码推送到相应的存储库中,对吗?一旦我提交并推送代码,就会构建项目。如果我错了,请纠正我。
  • 不是手动的,fastlane 可以为你处理。了解 fastlane 的工作原理需要一些工作,但相信我,这项工作会有所回报。检查有关设置的文档和fastlane build: docs.fastlane.tools/getting-started/ios/setup docs.fastlane.tools/actions/build_ios_app/#build_ios_app
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-02-07
  • 2011-11-19
  • 1970-01-01
  • 2016-07-06
  • 2014-08-05
  • 2020-10-07
  • 1970-01-01
相关资源
最近更新 更多