[Flutter学徒] 18 - 建立和发布一个iOS应用程序

1,122 阅读16分钟

本文由 简悦SimpRead 转码,原文地址 www.raywenderlich.com

没有iOS版本的多平台应用是不完整的。本章包括发布和部署......。

在本章中,您将学习如何使用Xcode和TestFlight来发布您的Flutter应用程序的iOS版本。

与Android不同,应用程序不能被侧载到iOS设备上。要向用户和测试人员发布您的应用程序,您必须通过App Store Connect,即Apple在App Store的开发者门户。TestFlight允许你向测试人员发送应用程序,并收集来自内部团队和外部世界的反馈。

对于本章,你需要使用安装了Xcode的Mac。你还需要一个有效的苹果开发者计划账户来访问App Store。

如果你正在关注你的应用程序,请打开它并继续使用它与本章。如果没有,找到本章的项目文件夹,并打开starter文件夹。

注意。如果你使用启动程序,别忘了在network/recipe_service.dart中添加你的apiKeyapiId。另外,从IDE的终端运行flutter pub get

在iOS模拟器上运行你的应用程序,在iOS文件夹中设置必要的文件。

创建签名

现在是时候离开Android Studio(或VS Code)并转移到Xcode了。打开工作区文件ios/Runner.xcworkspace。这个工作空间包括主要的应用程序项目和你需要构建应用程序的CocoaPods依赖。

在项目导航器中,检查Pods旁边是否有一个文件夹箭头。如果没有,关闭Xcode项目,返回到Android Studio并在iOS模拟器上运行你的应用程序。这将拉出所有需要的文件。当你完成后,重新打开ios/Runner.xcworkspace

在项目导航器中选择Runner来打开项目编辑器。选择Runner目标并打开General标签。

对于应用程序的提交,重要的是要检查捆绑标识符。这对你的应用程序来说必须是唯一的。如果你想跟着这个教程测试一下这个过程-也就是,不提交-你还是要改变现有的值。如果你没有想法,可以尝试使用一个随机的唯一字符串。

创建Apple Developer Program账户

如果你已经有一个有效的Apple Developer Program账户,请转到下一节。创建应用程序标识符

如果你想注册苹果开发者计划,请打开developer.apple.com/account并使用你的苹果ID登录。如果你看到一个提示你加入苹果开发者计划的页面,你需要点击链接并按照说明进行注册。

说明是不断变化的,所以本章不作解释。只要按照提示,输入你所有的个人或企业信息并支付费用。一旦注册,你就可以访问苹果开发者门户网站和App Store。

创建一个应用程序标识符

在开发者门户中,你要告诉苹果你的应用程序。

developer.apple.com/account,点击程序资源中的证书、ID和配置文件

从那里,选择标识符,进入标识符列表。这个列表包含与你的开发者账户相关的所有应用程序标识符。它将包括你手动或通过Xcode创建的所有ID。

点击+按钮来创建一个新的标识符。

你会看到一个长长的门户支持的标识符列表。对于这个任务,选择App IDs并点击Continue

你将有机会在应用应用剪辑之间进行选择。

注意。App Clip是你的应用程序的轻量级版本,用户可以快速下载并开始使用。后来,他们可以下载完整的应用程序。在写这篇文章时,Flutter只实验性地支持这些功能,不在本书的讨论范围内。更多细节见flutter.dev/docs/develo…

选择应用,然后点击继续

接下来,你有机会设置一个明确的App ID。

复制您之前从Xcode为您的应用程序选择的捆绑标识符,并将其粘贴到捆绑ID字段。记住,这必须是唯一的,所以不要使用com.raywenderlich.recipefinder

接下来,设置描述。这只供你使用。当你制作更多的应用程序时,它可以帮助你从控制台的长列表中找到你想要的应用程序。

还有一长串的能力,这是特殊的权利,让你的应用程序访问操作系统、硬件或苹果的云服务的一部分。本章的应用程序不需要任何特殊的能力,所以你不需要担心设置任何这些。

点击继续,然后点击注册。经过一段时间的处理,你会看到应用程序的ID列在识别器列表中。

现在,苹果知道了标识符,你需要更新Xcode。你会在网页和Xcode之间来回跳动几次。

设置团队

在项目编辑器中,点击签名和能力标签。这将允许你选择一个团队。在下拉菜单中选择你的开发者团队。如果你没有通过Xcode登录,选择添加账户...来登录。

一旦你设置了团队并修正了任何错误,Xcode将创建签名证书。

注意。与其让Xcode管理你的应用程序配置文件,你可以手动处理这些问题。如果你在一个持续集成环境中工作,你通常会这样做。手动签名超出了本书的范围,但它在_iOS应用分发与最佳实践_中有所涉及。www.raywenderlich.com/books/ios-a…

设置应用程序商店

当你提交Android应用时,你首先要有一个Google Play开发者账户,然后在Play Store中设置该应用。对于iOS(和macOS)应用程序,你需要遵循苹果的相同程序。

第一步是在App Store Connect中为该应用程序设置一个位置。这是苹果在App Store为开发者提供的管理控制台。

导航到App Store Connect网站。appstoreconnect.apple.com/

注意。你需要一个有效的苹果开发者计划账户来访问App Store Connect。如果您登录后看到一个注册按钮,那么您仍然需要注册。使用上面的说明来创建账户。

创建一个新的应用程序

在你上传和发布构建的应用程序之前,你首先要通过添加一些基本信息为该应用程序创建一个记录。

从App Store Connect的主登录菜单中,选择我的应用程序。您将在这里创建您的应用程序的商店列表。

要创建一个新的应用记录,请点击 + 按钮并选择新应用

你可能需要接受App Store的条款和条件,或者输入商业或法律信息。这可能发生在现在或过程中的任何时候。该网站会让你知道你需要同意,否则不会让你继续。任何时候你看到这个要求,解决这个问题后再回来。

你会看到一个窗口,你可以填写一些基本的应用程序信息。

填入以下信息。

  1. 选择iOS平台。
  2. 名称在这里很重要,因为你的客户会看到它。与安卓应用一样,你需要使用独特的东西。Recipe Finder已经被占用了,如果你选择一个别人已经使用过的名字,你会得到一个错误信息。
  3. 主要语言是应用程序的默认语言--在这种情况下是美国英语。
  4. 对于捆绑ID,从下拉菜单中选择你在开发者门户中使用的标识符。如果它没有显示在这里,请回到标识符列表,并确保你创建了一个应用程序ID。
  5. SKU是用于财务报告的唯一标识符。挑选一个你在数钱的时候会认识的。:]
  6. User Access控制对你团队的App Store Connect用户的访问。如果你有一个庞大的团队,并且不想让你的组织中的每个人都看到这个应用程序,这一点很重要。

当你完成后,你的回复应该是这样的。

点击创建,你会看到一个新屏幕,显示你的应用程序的App Store Connect条目。

瞧瞧! 你的应用程序现在已经准备好上传了。

上传至App Store

在Android上,你制作了一个appbundle来分发到Play Store。您需要建立一个存档来上传到App Store。你可以通过Xcode或命令行来完成这个工作。在本章中,你将使用Xcode。

在Xcode中,就在你输入Bundle Identifier的部分上面,你会看到一个带有设备的小应用图标。

在小应用图标的右边,点击设备名称,将设备设置为任何iOS设备作为构建目标。这很重要,因为你只能为实际的设备做可部署的构建,而不是模拟器。

当你上传你的应用到App Store时,你会上传一个应用存档。要从菜单中创建一个存档,请转到产品▸存档

归档为分发而构建应用程序,并将其打包上传到App Store。你会看到一个横跨Xcode窗口顶部的进度条。

当它完成后,Organizer窗口将弹出并显示存档。

该存档文件包含了应用程序的二进制文件以及元数据和符号。App Store将处理这个文件,并得到用户最终将在其设备上下载的版本。

上传构建文件

从组织者窗口,点击发布应用程序

你会看到一个分发方法的列表。选择App Store Connect并点击Next。其他选项是用于通常在企业背景下使用的自定义分发方式。

在下一个对话框中,选择上传,将构建的程序直接发送给苹果。选择导出选项创建一个工件,你可以以后通过其他方式上传。点击下一步

下一个表格包括分发选项。你可以选择剥离Swift符号,这样可以减少应用程序的大小。另一个选项是上传调试符号,这样就可以对用户提交的崩溃报告进行符号化。点击下一步

注意。由Flutter生成的Xcode项目在默认情况下是不启用位码的。要配置它为比特码,请看 github.com/flutter/flu…

下一个表格是关于应用程序的签署。让Xcode来管理你的签名是比较容易的,但是如果你有一个CI系统来做你的构建和上传到App Store,你就可以用手动签名来控制。现在,点击自动管理签名,然后点击下一步

如果你有一个苹果分发证书,跳到下一步。如果你不知道什么是苹果分销证书,那么你就来对地方了。

你需要一个证书来上传至App Store Connect。Xcode可以为您生成一个。如果您的账户还没有证书,您会看到以下屏幕。选择生成一个苹果分销证书,然后点击下一步

在证书生成的过程中,你会看到一个带有旋转轮的屏幕。它可能一闪而过或需要一点时间来生成。当它完成后,你会看到下面的屏幕。请务必阅读它。

你会注意到,它警告你,私钥是存储在本地的,如果丢失就无法恢复。苹果公司建议将证书和密钥保存在一个安全的地方。

点击导出签名证书,添加一个密码并将其保存在你能记住的地方。在你导出证书后,点击下一步

然后Xcode将签署该应用程序并准备上传。

在Xcode创建存档后,最后的表格将显示应用程序的内容和元数据。这包括任何框架-如Flutter-和其他依赖,以及所有的签名和权利信息。点击上传,将其发送到App Store。

现在,重要的是你已经在App Store中设置了记录,所以有一个地方可以存放这些信息。如果App Store Connect没有问题,比如必须接受协议,那么你就可以在Xcode中完成工作。否则,解决任何错误并再次尝试。当提示时点击完成

几分钟后,该应用程序将显示在App Store Connect的iOS构建下。进入appstoreconnect.apple.com/apps,点击你的应用程序并进入TestFlight标签。选择左边的Builds ▸ iOS,查看上传的构建列表。你会看到你的是处理中的

一段时间后,状态会更新为准备提交

另外,你可能会看到一个错误,如缺少合规性

如果有错误,请按照链接中的说明进行修复。如果这是你第一次上传构建,你可能会得到一个合规问题。按照你当地的法律建议,如何回答这些问题。

一旦你的应用程序准备好提交,你就可以继续进行TestFlight程序。

通过TestFlight共享构建

现在,你已经准备好测试你的构建。测试构建有两个选项。内部测试者外部测试者

内部测试是为了在你自己的团队或公司内部分享,以保证质量或反馈。一般来说,这包括其他开发人员、质量工程师、产品经理、设计师和营销专家。你的里程可能会有所不同。

外部测试是为一个有限的测试者群体进行的。这些人可以包括你组织内的人,以及beta测试客户、朋友、记者和任何你想在发布你的应用程序之前尝试的人。

内部测试

你可以在应用程序完成处理后立即开始内部测试。要从App store控制台的TestFlight标签添加测试人员,只需在内部组标题下选择App Store Connect Users

点击添加测试人员

你会得到一个要添加为测试者的用户列表。内部测试只对在您的App Store Connect中拥有账户的用户开放。至少,你会被列为可用。要向您的账户添加更多的人,您必须通过顶部导航栏的用户和角色链接。

一旦你添加了一个测试员,他们就会出现在测试员列表中。

该测试人员必须接受电子邮件的邀请,才能安装构建。

该邀请将提供指示或一个按钮来启动TestFlight。从那里,用户将收到一个安装应用程序的提示。

这就是用户在其设备上获得你的应用的全部过程。从那时起,App Store会在有新版本时自动通知你的测试者。

从App Store Connect中的同一个测试者列表中,你可以监控应用程序的使用情况,以了解崩溃或通过TestFlight工具提交的反馈。

外部测试

内部测试仅限于在你的商店账户中的几个人。显然,你不希望把商店的访问权交给不属于你的组织的测试人员。

要开始进行外部测试,你首先要做一个组。App Store让你把测试人员分成小组,这样你就不必把每个构建都发布给每个测试人员。例如,你可能希望一个测试团队得到每一个构建,但每周只更新一次客户测试版。

点击左侧导航栏中外部组旁边的 + 来创建一个新组。

你会看到一个窗口,让你输入组名称。输入一个名称并点击创建

在你创建组后,你会看到它被列在侧边栏中。

现在你可以向你的组添加测试人员。与内部测试的一个区别是,你可以从这个面板上直接邀请测试者。你也可以创建一个网络链接来分享,让测试者自己邀请他们加入小组。

在你创建链接或添加用户之前,你需要添加一个构建。点击添加构建

苹果在向测试者发布应用程序之前会对其进行审查。下一个窗口允许您选择您希望提交给苹果的Beta App审核的构建。

选择您希望Beta App Review测试的版本。点击下一步,进入下一个屏幕。

接下来,输入联系信息。这可以让您的读者提供用户反馈,并让Beta App Review询问他们的任何问题。如果你的应用程序有登录功能,你必须创建一个账户,让应用审查可以用来登录和检查应用程序。幸运的是,Recipe Finder没有登录。 :]

输入信息并点击下一步继续。

你的最后一步是输入一条小信息,这条信息将包含在构建通知中。这是一个要求人们查看某些东西或通知他们有关变化的机会。

输入一个信息,然后点击提交审查

这将把你的构建发送到苹果公司,以获得一个快速版本的应用程序审查。在很短的时间内--从几分钟到几天不等--假设没有任何问题的话,该应用就可以进行测试了。

恭喜你,现在你可以分发应用程序进行测试了。

要向App Store提交你的应用程序供下载或购买,你需要在App Store标签下添加所有需要的信息,如屏幕截图、营销副本、隐私政策和年龄等级。

一旦这些信息完成,你就可以将你的TestFlight构建提交给完整的应用审查。测试后,你可以提交你的应用程序进行发布。

这就是:在iOS上简单的Flutter应用发布。

关键点

  • 在上传构建之前,您必须配置苹果开发者门户和App Store Connect。
  • 使用Xcode对项目进行存档,以便轻松地将您的应用上传到App Store。
  • 使用TestFlight对iOS应用程序进行内部和外部测试。

何去何从?

如果你想更上一层楼,了解更多关于应用程序签署或在App Store中分发和销售给客户的信息,那么iOS应用程序分发和最佳实践www.raywenderlich.com/books/ios-a…是为你准备的。

如果你对这里没有涉及的条款有疑问,苹果的文档也很有帮助。developer.apple.com/documentati…


www.deepl.com 翻译