模拟器的快速通道

询问任何经验丰富的iOS开发人员,他们会告诉您应用签名是散发大多数屁味的部分。 它不会杀死您,您可以度过难关,但是却充满了不便,愤怒和一点神秘感。 因此,Apple一直在努力实现流程自动化,因此对于产品开发人员而言,只需勾选一个复选框即可。 当无法选中该框时,还有其他工具可以帮助减轻痛苦。

因为这只是最糟糕的情况,所以我们懒惰的工程师已经制作了足够的工具,可以容忍完整的应用程序签名。 但是中间的步骤呢? 仅仅因为我们可以从纽约飞往洛杉矶,就不能更轻松地开车前往费城。

模拟器

人们不时喜欢在发送代码之前对其进行测试。 这可能是最佳做法,我不知道,我是工程师,所以提起诉讼。 有些人甚至喜欢自动化他们的测试。

如果您想在iOS上自动化测试,则意味着您将在模拟器中进行测试。 现在,您将如何在要分发到实际设备的构建中执行此操作? 您知道吗,我们早先谈论过的那些花哨的建筑? 这些将不适用于模拟器。

不,现在您需要一个新的过程。 这可能看起来很神秘,但实际上只是在做您之前所做的事情,但是大约停止了四分之一。

实际上,每次您运行针对模拟器设备的应用程序的调试版本时,Xcode都会创建有效的模拟器版本。 运行针对模拟器的构建后,您可以在派生数据文件夹中找到模拟器构建本身。 外观类似于: ~/Library/Developer/Xcode/DerivedData/{App GUID}/Build/Products/Debug-iphonesimulator

但这不好。 什么,您将在每次测试时调试您的应用程序,拔出模拟器应用程序进行像非利士汀一样的测试吗? 不,你比那更好。 您应该得到比这更好的东西。 您应该得到自动化的东西。 也许还有一个饼干。

Fastlane自动构建仿真器

我会说TLDR,但为时已晚。 这是使用Fastlane创建模拟器版本的方法。

  xcodebuild(workspace:“#{workspace}”, 
方案:“#{scheme}”,
xcargs:“-configuration#{configuration} -sdk'iphonesimulator11.3'-destination'generic / platform = iOS Simulator'”
)zip(路径:“ ./ simulator / Build / Products / Debug-iphonesimulator /#{app-name}”,
output_path:“ ./ build /#{build-name} .app.zip”

是的。 就是这样 正如您所期望的,这里有些东西需要打开。

环境变量

关于环境变量已经做了一些假设。 您必须正确地进行设置,如下所示:

  • 工作区 —这是您要构建的.xcworkspace的名称。 如果您不使用工作区,则可以将变量更改为project:
  • scheme —您正在构建的方案的名称。 这是Xcode中“运行”按钮旁边显示的文本。
  • 配置 -Xcode用来构建应用程序的配置。 如有疑问,请使用Debug
  • app-name-这是您正在构建的应用程序的名称。 您可以在Xcode的应用程序设置中找到它。
  • build-name-这是您要在文件系统中命名模拟器构建的名称。 将内部版本号附加到应用程序名称很有用,这样您就可以参考以后的各个内部版本。

幕后花絮

Fastlane是一个很棒的工具,通常您可以使用单个命令对应用程序进行签名和打包。 遵循以下原则

 健身房(方案:“#{scheme}”, 
配置:“#{configuration}”,
output_name:“#{build-name}”)

很好,但是问题在于, gym()命令是直接飞往洛杉矶的航班。 它太远了,没有办法使它简短。 这就是为什么我们需要回到基础。 我们只希望Fastlane运行具有适当体系结构的xcodebuild命令行实用程序,然后退出。

Fastlane提供了xcodebuild()命令来执行此操作。 完成后,是时候压缩.app(它本身是目录)了,您就可以开始了!

摘要

使用此脚本,Fastlane将生成一个生成文件,只需拖放即可将其安装到自动化测试模拟器中。 无需代码签名,因此不涉及证书或置备配置文件。 只需运行构建,然后将应用复制并粘贴到模拟器即可。

就是这样。