在Docker中使用Fastlane构建iOS应用

K ..

我正在尝试简化我的iOS开发构建并阅读有关Docker的信息。

如果我理解正确的话,我可以创建一个包含所有依赖项的映像,而我的其他开发人员只需将其提取并在其中构建即可。

现在要说的是,这是否也适用于Fastlane(使用我认为的Xcode cli工具)和“ Docker for Mac”?

另外,我正在使用React-Native,这似乎开始了第二个过程,用于捆绑将在本版本中包含的JavaScript,稍后我读到Docker仅允许一个过程,这是问题吗?

牛奶

使用Docker的问题在于,即使您将Docker用于Mac,也无法访问基于macOS的映像。Docker在名为xhyve的轻型虚拟机中运行-至少如果您通过Docker for Mac软件包安装docker-则可在Mac上运行Linux。

本质上,这意味着您的docker容器将仅限于非Xcode功能。这是您绝对无法做的事情,至少没有不平凡的工作就不会做:

  • 编译应用程序的本机代码
  • 拍摄应用程序的屏幕截图或在模拟器中运行您的应用程序
  • 与Apple签署完成的应用程序 codesign

您可以将Docker容器用于以下用途:

  • 构建JS代码(我想,因为RN应该可以在Linux上工作)
  • 使用iTMSTransporter上传您的应用程序(即使用fastlane的deliver
  • 下载/创建证书,配置配置文件和证书推(即FASTLANE的matchcertpemsigh
  • 使用git

总而言之,您可能会非常有限。相反,建议使用诸如GemfileBrewfile列出所有依赖项之类的东西,并setup.sh运行一个小脚本brew bundle并将bundle install其安装在同事的计算机上。您还可以将其设置为在构建期间运行它们(使用Xcode的脚本构建阶段),这样就不会有人意外忘记安装构建所需的内容。

话虽这么说,有是对正在制定一个FASTLANE泊坞窗图像这里是也可在泊坞枢纽请注意,它仅经过过运行fastlane测试的测试(不依赖于仅适用于macOS的软件),因此它实际上并未声称可以可靠地运行fastlane。

我读到Docker只允许一个进程

Docker允许多个进程,但不允许一个以上的主进程。如果您的主进程停止了其他所有操作,并且容器也随之停止了。如果您只想使用它来安装依赖项,以便可以运行使用它们的一次性命令,而不是托管长期运行的服务,则始终可以使用以下命令docker run

docker run <repo/image:tag> <your_command>

或者将交互式外壳启动到容器中:

docker run -it <repo/image:tag> /bin/bash

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章