大多数浏览器和
Developer App 均支持流媒体播放。
-
使用云签名在 Xcode 中分发 app
了解如何将您的 app 直接分发到 App Store Connect 以及 Xcode 支持的所有分发方法。探索如何将您 app 的分发自动化,并了解分发工作流程的改进,例如云签名、app 记录创建和版本号管理。
资源
相关视频
WWDC22
Tech Talks
WWDC21
WWDC19
-
下载
♪ ♪ 您好 我叫巴拉杰 我是Xcode团队的工程师 今天 我想告诉您关于App分发 在Xcode 13中 有几种不同分发App的方式 今天 我会讨论 如何将App上传到App Store Connect 在App Store Connect以外的分发选项 以及如何自动化分发 我也会说明增加的新功能 在Xcode 13中的分发作业流程 您会发现本集内容非常有用 无论这是您第一次分发App 或第一百次 最近 我经常烘焙 因此我被启发 创造一个叫Baker的App 让其他人也开始烘焙 Baker能帮助人们做出多种 不同种类的面包和烘焙制品 我最近完成第一版Baker iOS App 经过广泛测试 想要将它分发 给beta测试者 以得到反馈 为了做beta测试 我希望我的App 可以在TestFlight上使用 这是一个 分发App测试版与取得反馈的服务 为了让Baker能在TestFlight上使用 我需要先将版本上传到 App Store Connect
我可以在App Store Connect中管理 TestFlight上的Baker版本 也可以 为我的开发团队配置设定 App Store Connect也是我管理 App Store上Baker版本的地方 无论我打算将Baker 放上TestFlight或App Store 我需要先上传 Baker的一个版本到App Store Connect 我将上传Baker测试版到 App Store Connect 在Xcode当中 所以分发流程 就在我开发App的地方开始 Xcode 13在分发方面 有令人兴奋的改变 让我上传Baker而不需 在App Store Connect 或本地机器上进行设置
Xcode 13第一个新增功能是您可以 在Xcode当中直接创建App纪录 在上传之前 接下来 Xcode能帮您 管理App版本数 在分发过程中 最后 有了云端签名 证书和私钥 会被储存在云端 意思是您不再需要 在本地手动设置 当使用自动签名时 来看看这到底如何运行 从Xcode上传Baker 到App Store Connect 我把Baker项目打开 准备好上传 我第一个需要的是一个Baker版本 可以被分发处理 为了执行这类版本 我先选择 “任何iOS设备” 在工具栏中的run destination 因为我需要确保Baker 能在任何iOS支持的设备上运行
接着在菜单栏选择产品 点选档案库 档案库是一个应用程序 开发者签名的发布版本 包含元数据 关于您的App和团队 在分发时会用到 在档案库运算完成后 Xcode organizer会自动出现 建立好的档案库自动被选择 这是我想用来分发的 在右边的inspector 可以看到关于档案库的信息 例如版本、bundle ID 团队名称 还有蓝色大按钮 在右上角 用来分发 除了储存档案之外 Xcode organizer也是 我能看到不同App分析的地方 为我所有的App 例如崩溃 能量、洞见与指标 当Baker在进行beta测试时 我一定会 回到这里看 以得知App运行状况的洞见 要开始分发 我将用目前选择的档案库 点击“分发App”按钮
分发的第一步是选择 我想要如何分发Baker App Store Connect是默认方式 我维持这个选择 因为这是我想上传的地方 有好几种其他方式 可以分发您的App 展示在这个窗口 例如Ad Hoc与Enterprise 我待会会详细说明 要继续上传到App Store Connect 我点击下一步 在分发助理的右下角 接着我被带到一个步骤 询问我想要上传还是导出 上传会为我的档案签名并产生IPA IPA是App包装上传的规格 然后发送到App Store Connect 而导出也将建立IPA 并用相同方式为内容签名 唯一不同的是Xcode将不会上传 IPA到App Store Connect 而是将它移到 您机器上的指定目录 这个IPA可在以后 传送到App Store 利用Transporter 因为现在我想上传Baker到 App Store Connect 我会维持选择上传 点击下一步以继续 Xcode现在会检查 App Store Connect状态 并执行一些分发设置步骤 Xcode 13的新功能 提示符出现 提示创建App纪录 在App Store Connect上 这是必需的 在我们上传Baker的实际版本之前 App纪录创建步骤 提供一些属性的默认值 像是App名称 bundle ID和主要语言 这些源于Baker档案库和系统设定 我很满意默认选项 所以点击下一步 Xcode现在创建必需的App纪录 在App Store Connect上 我可以在App纪录中看到 所有Baker上传版本 在这里我也可以设置TestFlight App内购买项目 定价信息及其他更多设定 Baker App纪录现在 在App Store Connect上 可以在我的App清单中看到 新创建的Baker App纪录将是 所有管理Baker版本的地方 所以我不用再创建一个新的App纪录 当执行后续上传时 在Xcode创建Baker App纪录 并验证App Store Connect设定后 将会提供一些选项 由我的档案库内容 以及我将如何分发一个App所决定 我想要包含Bitcode 我想要包括符号 这样我的App的崩溃报告 是详细及描述性的 我想确保 Baker的版本数是一致的 横跨每个框架 所以我维持选择默认值 并点击下一步以继续 我现在被带到一个页面 询问我想如何为Baker签名 签名是用来验证 Baker是来自被信任的开发者 并确保软件可以安全执行 给我的两个选项是自动 和手动签名 自动签名让Xcode帮我处理签名 而手动是当我想完整控制 签名流程 我希望Xcode帮我处理签名 所以我维持 点选自动签名并点击下一步以继续 Xcode现在会将Baker档案库转换成 一个IPA 并为了分发而签名 自动签名在分发作业流程中 经过令人兴奋的改变 不需在本地机器设置即可运行签名 签名流程需要证书 和私钥以验证我是被信任的开发者 当在本地签名 我需要确保 我有分发证书和私钥 安装在我的机器中 这通常需要 手动设置 在进入分发作业流程之前 在Xcode 13中 当使用自动签名 不需要设置证书 证书和私钥现在可以安全储存 在云端 也是签名运算进行之处 这表示当使用自动签名时 我完全不需要设置证书 这新的签名风格 被Xcode中所有分发方式所支持 例如App Store上传 Developer ID和Enterprise分发 云端签名完全在幕后运行 以控制您所有签名资产的方式 并为您的App签名 来详细谈谈这如何运作 Xcode会为您档案库中 开发者签名的Baker 创建一个部分签名 这部分签名包含 您的App的内容哈希 这些哈希的副本接着被发送到 我们的服务器 它利用私钥及证书 在云端为您的App签名 我们接下来回送剩下的签名部分 并将之插入部分签名中 以完成签名流程 现在 利用自动及云端签名 我们得到完整已分发签名的Baker 可以被上传到App Store Connect
任何在App Store Connect上的 管理者或账户所有者 可以默认使用云端签名 分发到App Store Connect 如果我想要开发者角色的人 上传Baker 利用云端签名 我可以在App Store Connect上 给他们许可 将“云端管理” “分发证书使用权”打勾 Xcode现在完成包装与云端签名 Baker 显示摘要页面 在我进行上传到 App Store Connect前 我能看到一些信息 例如 使用的证书类别、版本数 及Baker用以签名的权限 我很满意目前看到的 所以我将点击上传 现在Xcode将上传Baker第一版 到App Store Connect 当我上去App Store Connect 我可以看到Baker的第一个版本 在Xcode之前创建的App纪录 从这里 我可以设置Baker 为了TestFlight 开始beta测试 要知道如何在App Store Connect上设置您的App 为了TestFlight与App Store 请看叙述中的说明 在把Baker放上TestFlight 开始beta测试后 我处理了许多漏洞及反馈 我现在想要上传另一个版本的App 含有需要之更新 流程大致相同 与我们刚刚经历过的 我将App归档 以想要的变更 然后通过Xcode organizer分发 会有两个相异之处 第一 我不需要再创建App纪录 第二 我必须确保 Baker的版本数不同 因为App Store Connect保留每个版本 并用版本与版本数来区别它们 我可以更改版本数 在我的项目档案中 在归档之前 但如果我不想管理版本数 分发作业流程可以帮我处理
Xcode 13新功能 如果Xcode发现我要分发 已被使用的版本数 在App Store Connect上 或数字没有增加 它会提供增加 版本数到有效的版本数 在档案库中 看一下管理版本 和版本数选项 以查看Xcode选择什么版本数
因为我让分发作业流程管理版本数 我遵循同样的流程 与第一次上传的Baker一样 我现在有Baker的第二个版本 在App Store Connect上了 这个循环 发布测试版本 与处理反馈将继续 直到产生符合希望质量的版本 能够在App Store上发布
为了让Baker在App Store上架 我可以推广 TestFlight其中一个版本 在App Store Connect上 或在organizer上传另一个版本 到App Store Connect 用之前相同的方式 当Baker上架到App Store 我可以继续进行工作 增加新功能、漏洞修复 与改良到Baker中 当我准备好下一次上传 不管是到TestFlight 还是App Store 再次遵循Xcode内相同流程即可 有了新增功能 在Xcode 13的分发作业流程中 例如云端签名 创建App纪录及版本数管理 现在可以分发App 而不需事先在机器 或App Store Connect上设置 这让分发您的App 更加流畅 Xcode提供各种 不同分发选项 来看看其他 分发App的选项 从Mac App开始 多数iOS App 包括Baker 默认能在 装有Apple Silicon的Mac上使用 要配置此设定 我到隐私权 和有效性区块 在Baker App纪录中 我希望Baker也能 在装Intel的Mac上使用 所以我可以创建一个 Mac catalyst版 或Mac原生版的Baker 然后我有两个选择 以分发我的App到全世界 我可以分发Mac Baker版本 到Mac App Store 使用云端签名 跟我们分发到iOS的方式相同 如果使用跟iOS App相同的 bundle ID 我的Mac App会使用 跟iOS版相同的App纪录 这也表示某些功能 例如App内购买项目 会在两个平台分享 我也能让我的Mac App 在TestFlight上使用 因为MacOS Monterey 现在将它纳入其中 这表示我可以使用TestFlight 以beta测试Baker 横跨所有Apple平台
如果我希望大家能下载Baker 在Mac App Store以外的地方 我可以选择分发 我的App 使用developer ID Developer ID分发 在云端为Baker签名 以developer ID证书 并上传App 以便检查是否为恶意软件 这个流程称为公证 当Baker被签名及公证 macOS会信任这个App 可以在任何一台Mac上执行
想得知更多分发信息 使用developer ID和公证 请看“关于公证” Developer ID以及Mac App Store 是分发到macOS的两个主要方式 两者都是将您的App 分发到世界的好选择 我们说过不同 分发到Mac的方式 来看一下 更多分发您的App到iOS的方式 有时候 我希望直接发送给我的团队 一个已分发签名的Baker版本 这可以用来测试漏洞修复 测试实验性的新功能 或其他各种原因 以这个案例来说 我想要使用Ad Hoc分发 Ad Hoc分发 让我可为Baker签名以执行 在注册于我团队名下 每种上限100台的设备上 使用Xcode 我可以选择Ad Hoc分发选项 导出我的App 接着发送Baker 给我的同事 在已注册的设备上 最后 我的团队有一个 叫做Campus Explorer的App 我们想要在公司内部分发 Xcode为此提供两个分发选项 Custom Apps与Enterprise分发 使用Custom Apps 我可以分发 到App Store Connect 并在那设置我的Custom Apps 第二 如果我想要私下分发 通过Enterprise方案 我可以选择 Organizer内的Enterprise分发方式 想得知更多Custom Apps分发信息 请看“Custom Apps分发“ “使用Apple Business Manager”
我们现在用了 各种不同方式分发Baker 以许多不同版本 未来 我将继续选择 相同的选项与方式 在分发时 所以我想要开始自动化分发流程 自动分发特别好 当使用连贯性一体化服务时 因为我能创建、测试、分发我的App 在连贯的作业流程中 新的Xcode Cloud CI服务很好用 当您创建并测试过您的应用程序 Xcode cloud支持自动分发 您的App到App Store Connect 要学习如何设置与分发您的App 在Xcode Cloud 请看 “探索Xcode Cloud作业流程”
如果您想要自动化分发 使用不同的CI服务 或在本地机器上自动化 您可以用Xcode命令行工具 Xcodebuild Xcodebuild exportArchive命令用来 自动化分发 纳入档案库 导出选项plist文件和凭证 我可以在Xcode中创建档案库 像第一次上传Baker时 或用Xcodebuild的归档命令 创建档案库 要引用建立好的档案库 我用档案库路径自变量 通过这个路径到建立好的档案库
接下来是导出选项plist文件 这就像分发App的食谱 这里是我手动选择所有选项 在Xcode分发作业流程中 被指定的地方 如果您导出IPA 导出选项plist文件被储存 在您的导出目录 有所有您选择的选项 当我们上传Baker 到App Store Connect 一份导出选项plist文件会被创建 追踪记录选项 例如选择上传 使Bitcode可用和选择自动签名 当Xcodebuild使用这份plist文件 它的分发会选择 我们在Xcode中相同的选项 为取得可用的选项 在导出选项plist文件中 您可以在命令行 执行Xcodebuild-help
要指名导出选项plist文件 我需要通过导出选项plist文件自变量 以到我的plist档案的路径 最后 我需要确保 Xcodebuild能够取得有效凭证 为了成功云端签名 并上传到App Store 有两个方式可以做到 第一个是登入Xcode 在执行Xcodebuild前 这个时域会存留 在我的机器上一段时间 如果我用Xcode登入 唯一需要的标志 是允许供应配置更新 那给了Xcodebuild许可 与Apple开发者网站沟通 Xcode 13的新功能 您可以使用 App Store Connect Keys 以登入Xcodebuild 而不需登入Xcode 这钥匙可在App Store Connect提取 并传到Xcodebuild 您需要的三个东西是issuer ID 会传送到Xcodebuild 用authenticationKeyIssuerID key ID 会被传送 用authenticationKeyID 最后 您需要下载API Key 用“下载API Key”按钮 下载文件库的路径可以被传送到 Xcodebuild 用authenticationKeyPath Xcodebuild仍需要 允许供应配置更新 因为它仍需要与开发者网站沟通 当您有了这个 以及所有App Store Connect keys 您就拥有需要的凭证 让Xcodebuild分发您的App 现在我有档案库、导出选项plist文件 与凭证 我有了所需一切 以构造Xcodebuild完整命令 这里是组成 Baker自动分发命令的所有元素 我希望继续提供更新 给我的beta测试者 每周一次 所以我设置我的CI 这么做 用这个分发命令
这就是分发App的所有方式 用Xcode 13 从分发到App Store Connect 为了TestFlight及App Store 到分发方式如Developer ID Ad Hoc与Enterprise 最后 要自动化分发流程 您可以使用Xcodebuild 或Xcode Cloud CI服务 想得知更多信息 关于如何用Xcode Cloud 分发您的App 请看“探索Xcode Cloud作业流程” 想得知更多详细信息 关于其他分发方式 “App分发- 从Ad Hoc到Enterprise” 有很棒的信息 感谢您的聆听 请尽情享受WWDC [欢快音乐]
-
-
正在查找特定内容?在上方输入一个主题,就能直接跳转到相应的精彩内容。
提交你查询的内容时出现错误。请检查互联网连接,然后再试一次。