EP 30: Archive and Publish TopStore App for iOS in Visual Studio

Hello, 各位 iT邦帮忙 的粉丝们大家好~~~

本篇是 Re: 从零开始用 Xamarin 技术来复刻过去开发的一个 App: TopStore 系列文的 EP30。

目前 TopStore App 已经有基本的样子了,接着就是准备 "Archive(封存)" App 了,本篇要来针对 iOS 平台来进行 App 的 "Archive(封存)" 唷!

本篇 EP30 就开始来介绍介绍罗~~~


首先,先在 Visual Studio 的方案总管找到 iOS 专案底下的 info.plist 来编辑,在前面 EP21 介绍自订启动画面时,已经稍微看过并编辑它的一些设定,捧友们应该对它不陌生。
info.plist 的编辑 1

在这边的 info.plist 里面就来调整了这些设定值。
info.plist 的编辑 2

存档之後,再透过 Visual Studio 的方案总管在 iOS 专案上右键选单,点选 "属性"。
iOS 专案的属性编辑

首先在 iOS 组建这里会看到预设显示 "Debug 模式" 的组态,并且平台为 "iPhone Simulator"。
iOS 专案的属性 "iOS 组建" 确认

把 "组态" 切换到 "Release 模式"。
"组态" 切换到 "Release 模式"

把 "平台" 切换到 "iPhone"。
"平台" 切换到 "iPhone"

接着稍微确认一下在 "Release 模式" 组态与 "iPhone" 平台的相关 iOS 组建设定是否都正确。
相关 iOS 组建设

接着确认 Visual Studio 是否有连线到发版用的 Mac 设备。
确认 Visual Studio 与 Mac 之间的连线

在刚刚的 iOS 专案 "属性" 中切换到 "iOS 套件组合签署" 分页,预设值应该是如下图。
切换到 "iOS 套件组合签署" 分页 1

如果在 Apple Developer Account 的 Portal 网站中已经有针对 "凭证(Certificates)"、"签署识别(Identifiers)"、"布建设定档(Provisioning Profiles)"...等,以上设定,统称: "套件组合签署" 资讯,都已经正确设置完成。

并在已连线的该台 Mac 装置 "成功" 的汇入其 "套件组合签署" 资讯,那理论上就可以选择到这个 "套件组合签署" 的设定值。
切换到 "iOS 套件组合签署" 分页 2

接着准备进行 iOS 平台 App 的 "Archive(封存)",由於 Visual Studio 的是以 Android 平台的封存处理为预设值,所以 iOS 平台要进行封存时,在 Visual Studio 请先确定以下四点,再进行 "Archive(封存)"。

  1. 把 Visual Studio 的编译组态切换到 "Release" 模式。
    "组态" 切换到 "Release" 模式准备进行封存

  2. 把 Visual Studio 的执行平台切换到 "iPhone"。
    "组态" 切换到 "Release" 模式准备进行封存

  3. 把 Visual Studio 的启动专案切换到 "TopStoreApp.iOS"。
    Visual Studio 的启动专案切换到 "TopStoreApp.iOS"

  4. 接着再把 Visual Studio 的执行装置切换到 "远端装置"。
    "组态" 切换到 "Release" 模式准备进行封存

以上确认完毕後,就可以在 iOS 专案的右键选单找到 "封存" 选项。
右键选单中找到 "封存" 选项

点选 "封存" 後 Visual Studio 的 "封存管理员" 会出现,并且开始依照刚刚的 "Release 模式" 设定进行 "Archive(封存)" 处理。
依照刚刚设定的 "Release" 模式进行 "Archive(封存) 1"

进入制作 "套件组合" 阶段後不久 "Archive(封存)" 处理完毕。此时,Visual Studio 的最左下角也会有文字显示告知。
依照刚刚设定的 "Release" 模式进行 "Archive(封存) 2"

如果中途关闭了 "封存管理员" 等到 "Archive(封存)" 完毕时,也可以再透过 Visual Studio 的方案总管的在 iOS 专案上右键选单点选 "检视封存",看到 "封存" 结果。
iOS 专案上右键选单点选 "检视封存"

再次回到 "封存管理员" 时,会列出之前成功封存成各平台的各个版本 App。
成功封存成各平台的各个版本 App

点选成功 "封存" 成 iOS 平台 App 版本的 "组合套件(*.ipa)" 後,找到在 "封存管理员" 右下方的 "散发" 按钮。
Visual Studio 中 "封存管理员" 右下方的 "散发" 按钮

Visual Studio 会跳出 "App Store"、"Enterprise"、"临机操作" 三种散发通道可供选择。
跳出 "App Store"、"Enterprise"、"临机操作" 三种散发通道

在这边就选择 "App Store" 来做为散发通道吧!
选择 "App Store" 散发

BTW, 要先在 "App Store Connect" 针对该 "套件组合识别码(tw.goodjob.beta.topstoreapp)" 设立好 "套件组合(*.ipa)" 的 App 上传通道,才能选择 "App Store" 作为散发通道喔!

在前面 "封存" iOS 平台 App 的时候已经针对此 "套件组合识别码(tw.goodjob.beta.topstoreapp)" 选择专属的 "签署识别" 与 "布建设定档" 来建立 "套件组合(*.ipa)",所以这边也只是再确认过一次 "签署识别" 跟 "布建设定档" 是否正确。
确认 "签署识别" 跟 "布建设定档"

检查後都确认没问题请点选 "上传至 Store"。
上传至 Store

点选 "上传至 Store" 之後,Visual Studio 的封存管理员会开始启动发布。
封存管理员开始启动发布

等待验证 "套件组合(*.ipa)" 的过程。
等待验证 "套件组合(*.ipa)"

验证无误後会跳出透过 Apple ID 设置的 App 专属认证金钥(这跟 Apple Developer Account 无关,是由 Apple ID 自行设置的一组专用的认证金钥)。
Apple ID 设置的专属认证金钥 1

输入完成後点选 "确定"。
Apple ID 设置的专属认证金钥 2

App 专属认证金钥的验证授权完成後,App Store Connect 在接受上传前会再验证一次 "套件组合(*.ipa)"。
上传 "套件组合(*.ipa)" 至 App Store Connect 1

验证 "套件组合(*.ipa)" 完成後,正式开始上传至 AppStore Connect。
上传 "套件组合(*.ipa)" 至 App Store Connect 2

"套件组合(*.ipa)" 成功上传到 App Store Connect 完成时,在 Visual Studio 的最左下角也会有文字显示发行完成。
上传 "套件组合(*.ipa)" 至 App Store Connect 3

最後,虽然没有像 Google Play Console 一样,需要第一次时 "手动" 上传的这种奇怪的部分,还是把该 "Archive(封存)" 出来的 *.ipa 档案放到 Windows 的 "桌面" 来看一下。
Archive(封存) 出来的 "套件组合(*.ipa)" 在 Windows 的桌面显示

以上 EP30 的介绍就到这边~~~

感谢各位捧友啦!!

嘎啦呜唷~~~

额外参考文件:

  1. iOS Development 的凭证、签署识别、布建设定档在使用 Xamarin 开发 iOS App 时要如何设定(手动篇I):
    https://dotblogs.com.tw/jamestsai/2019/08/27/How-to-set-iOS-Development-Certificates-Identifiers-and-Profiles-by-using-Xamarin-Develop-iOS-App-I

  2. iOS Development 的凭证、签署识别、布建设定档在使用 Xamarin 开发 iOS App 时要如何设定(手动篇II):
    https://dotblogs.com.tw/jamestsai/2019/09/01/how-to-set-ios-development-certificates-identifiers-and-profiles-by-using-xamarin-develop-ios-app-ii

  3. iOS Development 的凭证、签署识别、布建设定档在使用 Xamarin 开发 iOS App 时要如何设定(自动篇):
    https://dotblogs.com.tw/jamestsai/2020/04/19/How-to-set-iOS-Development-Certificates-Identifiers-and-Profiles-by-using-Xamarin-Develop-iOS-App-P3

  4. 透过 Visual Studio 串接 App Store Connect 发布 iOS App:
    https://dotblogs.com.tw/jamestsai/2020/06/05/Using-Visual-Studio-publish-iOS-App-to-App-Store-Connect


<<:  追求JS小姊姊系列 Day23 -- 头等工具人也看安眠书店? 认识闭包让你独占变数

>>:  爬虫怎麽爬 从零开始的爬虫自学 DAY24 python档案读写open( )

[重构倒数第26天] - 你可能不需要Vuex (You might not need Vuex)

前言 该系列是为了让看过Vue官方文件或学过Vue但是却不知道怎麽下手去重构现在有的网站而去规画的系...

资料管理能力成熟度模型(DCMM)

资料管理能力成熟度模型(Data Management Capability Maturity Mo...

【Day09】陈述式与表达式

陈述式(Statement) JavaScript 语句类型,用於命令执行指定一系列操作,最大的特徵...

[从0到1] C#小乳牛 练成基础程序逻辑 Day 13 - if 条件判断

单一条件判断 | Y/N是非题般的存在 | 流程图绘制 ...

Day 25 : 可解释的 AI - Explain AI (XAI)

AI 黑箱作业已经被诟病许久,因为 AI 类神经网络的复杂性不似机械学习的树状结构、线性结构容易理...