新的Fastlane插件可使用altool上传iOS二进制文件

最初在XCBlog上发布 阅读原始文章以获得更好的图形

苹果不希望我们出于任何原因启用连续部署。 没有用于处理iTunes Connects的API,Apple仍然希望批准您的应用程序。 苹果自己的持续集成服务器(又称Xcode服务器)不允许我们将IPA文件上传到iTunes Connect。 存档过程会创建一个ipa文件,但会在那里停止。 我们仍然需要依靠Fastlane或手动过程将内部版本上传到iTunes connect。 在上一篇博客文章中,我们已经看到了将iOS二进制文件上传到iTunes Connect的五种方法。 在本文中,我们将介绍我编写的Fastlane插件altool,以使用altool将iOS二进制文件上传到iTunes Connect。 您可以在Github上找到该插件的详细信息。

为什么我写了这个插件

Fastlane解决了使用传递和试用之类的工具将iOS二进制文件上传到iTunes Connect的问题,以便我们可以编写与iTunes Connect交互的脚本。 但是,Fastlane使用iTMSTrasporter工具上传二进制文件并处理iTunes Connect,这是一个棘手且漫长的过程。 GitHub上有一个问题来讨论在iTMSTransporter上使用altool的问题,但是作者决定使用iTMSTrasporter来交付工具。

altool是Application Loader的命令行界面,似乎比iTMSTrasporter更为流畅。 我们不需要显式安装此实用程序,它附带了最新的Xcode。 苹果在这里有altool的简要文档。 使用Fastlane,无需使用此工具,因此我认为编写插件很容易,这样我们就可以将二进制文件上传到iTunes connect。

如何使用altool插件

使用altool插件与使用其他插件一样容易。 首先,通过运行以下命令将其添加到您的项目中:

  fastlane add_plugin altool 

此插件的唯一先决条件是必须安装Fastlane,此插件具有可配置的Apple ID和密码,但您可能不想在配置中编写该值。 您需要使用FASTLANE_USER和FASTLANE_PASSWORD环境变量设置进行Fastlane设置。 当您运行fastlane init时,Fastlane会询问它,但如果没有,则必须设置这些变量。

您可以轻松地为bash shell设置它

  $ export FASTLANE_USER =“ your_apple_id@yourcompany.com”; 
$ export FASTLANE_PASSWORD =“ your_super_xecret_password”;

如果您不使用bash,也可以对外壳进行选择。此插件可用于使用Gym将生成的ipa文件上传到iTunes Connect。

安装后,我们可以使用以下配置参数轻松配置插件

  altool( 
altool_username:ENV [“ FASTLANE_USER”],
altool_password:ENV [“ FASTLANE_PASSWORD”],
altool_app_type:“ ios”,
altool_ipa_path:“ ./ build / Your-ipa.ipa”,
altool_output_format:“ xml”,

使用Gym创建iOS二进制文件或ipa文件后,即可进行配置。

关于安全的一点点

在以上配置中,我们已使用环境变量进行安全配置。 如何安全地使用这些凭据取决于您。 当altool插件运行时,它可能会将用户名和密码打印到控制台命令,将输出通过管道传送到/ dev / null或使用类似的方法,以便Fastlane不会将命令打印到控制台。 选择正确的方法来保护您的详细信息。

示例项目

Github上有一个示例项目Altool-Demo,它有其自述文件。 随时检查项目并自己尝试。 该项目正在使用虚拟文件,因此它无法通过验证,但是如果您拥有真正的ipa,则它将被上传到iTunes Connect(希望如此)

结论

该插件只是Apple命令行工具altool上的Ruby包装器,如果该altool可以工作,则该插件应该100%可以工作。 我想在真实的应用程序上尝试一下,看看它的性能如何。 试试看,后果自负。 祝您好运,并为iOS应用持续交付。

像XCBlog的 XCTEQ 发布的帖子一样 您可能还喜欢我们的一些服务,例如访客博客或Mobile DevOps(CI / CD)或测试自动化。 Github 搜索我们的 服务 ,开源项目, 或者在 Twitter Facebook Youtube LinkedIn 上关注我们 下载我们的 XCBlog iOS应用程序以离线阅读博客。

X CTEQ 一家专门从事基于Mobile DevOps,CI / CD,Mobile,AI / ML的测试自动化Checkout XCTEQ产品和服务的公司, 网址 http://www.xcteq.co.uk 或写信给我们info@xcteq.co。英国..