支持
在 ShouArchive 中遇到问题?请先查看下面的常见问题,仍未解决再来信联系。
快速上手
「描述文件」标签页要求我允许访问一个文件夹,为什么?
Mac App Store 版运行在 macOS 沙盒中。沙盒应用只能读取你明确选择过的文件夹,而 Xcode 存放描述文件的文件夹位于应用之外,因此需要允许一次。
点击「描述文件」标签页中的文件夹按钮,会弹出一个已经选中该文件夹的打开面板——什么都不用改,直接按允许即可。这次授权会在之后的启动中保留(macOS 安全作用域书签)。
应用读取的文件夹:
~/Library/Developer/Xcode/UserData/Provisioning Profiles— Xcode 16 及更高版本~/Library/MobileDevice/Provisioning Profiles— 较早的 Xcode 版本
~/Library 在 Finder 中默认是隐藏的。在打开面板中按 ⌘⇧G 并粘贴上面的路径即可直接跳转。如果不想允许该文件夹,也可以把 .mobileprovision 文件拖入窗口,或使用「从文件添加…」。
支持哪些文件类型?
- 产物检查:
.ipa(iOS 标签页)、.apk和.aab(Android 标签页) - OTA 分发:
.ipa(iOS)、.apk(Android)。AAB 无法直接安装到设备上,因此不接受。 - 描述文件:
.mobileprovision - API 密钥:从 App Store Connect 下载的
.p8文件
将文件拖到窗口上,或使用「选择文件…」(⌘O)。
为什么这个版本没有 IPA/APK 构建或导出功能?
Mac App Store 应用必须运行在沙盒中,而沙盒无法启动 xcodebuild、gradle 之类的外部程序。因此这个版本专注于三件事:检查、描述文件和 OTA。产物检查同样不依赖外部工具——应用自带的解析器直接读取 IPA、APK 和 AAB 文件。
描述文件与 App Store Connect API
如何创建 App Store Connect API 密钥?
- 前往 App Store Connect › 用户和访问 › 集成 › App Store Connect API。
- 生成一个团队密钥。读取和创建描述文件与设备通常需要管理(Admin)角色。
- 在应用的「下载描述文件」›「API 密钥」中输入 Issuer ID、Key ID 和下载的
.p8文件。选择AuthKey_XXXXXXXX.p8文件时会自动填入 Key ID。
Apple 只允许下载一次 .p8 文件,请妥善保管。应用绝不会使用你的 Apple ID 或双重认证验证码。
API 密钥保存在哪里?会发送到哪里?
.p8 文件留在你存放它的位置,应用只记住对它的引用(安全作用域书签)。请求令牌在你的 Mac 上签名,密钥本身从不发送到任何地方——应用只与 Apple 的 App Store Connect API(api.appstoreconnect.apple.com)通信。在应用中移除密钥不会删除 .p8 文件。
「即将过期」和 D-N 徽章是什么意思?
30 天内到期的描述文件会标记为「即将过期」,并以橙色 D-N 徽章显示剩余天数。超过到期日的则标记为「到期」(红色)。「新增」表示最近创建;「重复」标记的是团队、App ID 和类型都相同的两个或多个描述文件。
「证书」卡片是空的。
钥匙串中的代码签名证书列表无法在沙盒内读取,因此 Mac App Store 版中这张卡片是空的。内嵌在各描述文件中的证书仍会显示在详情和比较视图中,并提供 SHA-1 和 SHA-256 复制按钮。
我可以注册多少台设备?
每个 Apple Developer 账户在每个会员年度内,每种类型(iPhone、iPad、Mac……)最多可注册 100 台设备。已停用的设备在会员资格续期之前仍会占用名额。「设备」标签页会显示各类型的当前用量(例如 iPhone 3 / 100)。
产物检查
检查文件会修改或上传它吗?
不会。文件是只读的:原文件绝不会被修改,不会在它旁边写入结果文件,也不会向任何服务器发送任何内容。结果只显示在应用窗口中。
我不明白某一项是什么意思。
带虚线下划线的项目名称(权限、设备功能、清单设置、证书指纹、Entitlements 等)点击后会弹出说明,包含是什么 · 详情 · 注意事项。16 KB 卡片请点击标题旁的 ⓘ。
16 KB 页面大小检查看的是什么?
从 Android 15 开始,部分设备使用 16 KB 内存页,Google Play 要求原生库支持它。应用会检查 64 位(arm64-v8a、x86_64).so 文件的 ELF LOAD 对齐;对于以未压缩方式存储在 APK 中的 .so 文件,还会检查它们在归档内的 16 KB 边界,并列出不符合要求的库。
OTA 分发
OTA 文件已经生成,但应用无法安装到设备上。
请按顺序逐项检查:
- IPA、
manifest.plist和install.html必须全部通过 https 提供。iOS 拒绝通过 http 安装。 - 请在设备上的 Safari 中打开安装链接或二维码。即时通讯软件的预览和应用内浏览器往往不会触发安装。
- Ad Hoc:设备的 UDID 必须包含在描述文件中。如果没有,请把设备加入描述文件并重新构建 IPA。
- Enterprise:安装后,前往「设置」›「通用」›「VPN 与设备管理」,信任该开发者。
- 使用 App Store 分发描述文件签名的 IPA 无法通过 OTA 安装。选择这类文件时,应用会给出警告。
- 检查清单中的 IPA URL 是否与文件的实际位置一致,且文件名不含空格或特殊字符。
生成的文件保存在哪里?
「创建安装文件」(⌘↩)会要求你选择一个输出文件夹。它会在其中创建 <name>_OTA 文件夹,放入 IPA(或 APK)的副本,以及 <name>.manifest.plist、<name>.install.html 和 <name>.qr.png(Android:.install.html 和 .qr.png),同名文件会被覆盖。应用从不上传任何内容,请自行将这些文件连同 IPA 或 APK 一起上传。
Android 的安装是怎样进行的?
将 APK、install.html 和二维码图片上传到同一个 https 文件夹,然后在设备的浏览器(Chrome)中打开安装页面。由于应用来自 Play 商店之外,设备需要允许安装未知来源的应用。页面上显示 SHA-256,测试人员可以据此核对下载的文件。
常规
如何更改语言?
打开工具栏中的地球图标菜单,选择语言并确认「立即重新启动」。应用会以该语言重新启动,你的工作会被保留。支持:简体中文、繁體中文、English、한국어、日本語 和 Español。
主题和文本大小?
在工具栏中选择浅色、深色或系统设置。文本大小可在 85 % 到 150 % 之间调整:通过「显示」菜单(放大文本 ⌘+、缩小文本 ⌘-、默认 ⌘0)或设置(⌘,)›「界面」。
系统要求
macOS 15 Sequoia 或更高版本,支持 Apple Silicon 和 Intel Mac。App Store Connect API 密钥仅在下载、创建描述文件和注册设备时需要;其他功能均可离线使用。
如何报告问题?
请将以下信息发送至 beakbigkb@gmail.com,以便尽快排查:
- macOS 版本(苹果菜单 › 关于本机)
- 应用版本(ShouArchive 菜单 › 关于 ShouArchive)
- 你的操作步骤,以及实际发生了什么
- 如有可能,附上截图或确切的错误文字
无需附上 IPA、APK 或描述文件。如果需要,会另行索取——在发送任何文件之前,请确认其中不含密钥文件(.p8)或敏感数据。