Mac App Store应用提交指南
如何提交应用至Mac App Store 和 MAS 构建的限制.
注意: 提交应用到MAS,你需要付费加入开发者计划.
如何提交您的应用程序
以下介绍了如何将应用提交至MAS,但并不确保应用一定被Apple审核通过, 你需要详阅Apple的提交指南,了解MAS的详尽要求.
获得证书
要将您的应用程序提交到Mac App Store,您首先必须从Apple获取证书。这里有个现成指南可供参考.
获得 Team ID
在软件签名之前,您需要知道开发者账户的 Team ID,请登录 Apple开发者中心并点击侧边栏的Membership
,您的Team ID显示在团队名称下的 Membership Information
里。
软件签名
完成准备工作后,您可以按照应用程序分发打包应用并进行签名.
首先,你需要在软件包内的 Info.plist
中增添一项 ElectronTeamID
:
然后,准备两个名为 child.plist
和 parent.plist
的授权文件.
child.plist
:
parent.plist
:
把 上面的 TEAM_ID
改成你自己的 Team ID
, 把 your.bundle.id
改成应用的Bundle ID,然后使用以下脚本签名应用:
如果你是 macOS 下的应用沙箱使用新手,应当仔细阅读 Apple 的这边 启用应用程序沙箱 了解一些基础,然后在授权文件 (entitlements files) 内添加你的应用所需密钥。
除了手动签名你的应用,你也可以选择使用electron-osx-sign 模块来完成此工作。
签名原生模块
应用程序中的原生模块也需要签名。如果使用electron-osx-sign,请确保在参数列表中包含已生成二进制文件的路径:
还要注意,原生模块可能产生的中间文件不包括在内(因为它们也需要被签名)。
如果你使用electron-packager 8.1.0 之前的版本,则需在构建步骤中添加electron-packager来忽略这些文件。
8.1.0及更高版本已默认忽略这些文件。
上传应用
签名完成后,您可以使用Application Loader将其上传到iTunes Connect进行处理,确保您在上传之前已创建了创建记录.
检查并提交你的应用
最后, 你可以检查并提交你的应用.
MAS 构建限制
为了满足应用程序沙箱的所有要求,MAS构建中已禁用以下模块:
crashReporter
autoUpdater
并且下面的行为也改变了:
某些机器的视频采集功能可能无效.
某些辅助功能可能无效.
应用无法检测 DNS 变化.
在登录时启动应用程序的 API 会被禁用。详见这里
另外,也由于应用沙箱的使用,应用可以访问的资源也被严格限制,更多请详细阅读App Sandboxing了解更多信息.
附加权利
根据应用使用的 Electron API,你可能需要在 parent.plist
文件添加附加授权,以便能够从应用程序的Mac App Store构建中使用这些API。
网络访问
启用传出的网络连接,允许你的应用程序连接到服务器:
启用传入的网络连接,让你的应用程序打开网络 socket 监听:
详阅更多细节: 启用网络访问文档
dialog.showOpenDialog
详阅更多细节: 启用用户选择的文件访问文档
dialog.showSaveDialog
详阅更多细节: 启用用户选择的文件访问文档
Electron使用的加密算法
根据您所在的国家和地区,Mac App Store可能需要记录应用程序中使用的加密算法,甚至要求您提交美国加密注册(ERN)批准的副本。
Electron 使用下列加密算法:
AES - NIST SP 800-38A, NIST SP 800-38D, RFC 3394
HMAC - FIPS 198-1
ECDSA - ANS X9.62–2005
ECDH - ANS X9.63–2001
HKDF - NIST SP 800-56C
PBKDF2 - RFC 2898
RSA - RFC 3447
SHA - FIPS 180-4
DES - FIPS 46-3
DH - RFC 2631
DSA - ANSI X9.30
EC - SEC 1
IDEA - "On the Design and Security of Block Ciphers" book by X. Lai
MD2 - RFC 1319
MD4 - RFC 6150
MD5 - RFC 1321
MDC2 - ISO/IEC 10118-2
RC2 - RFC 2268
RC4 - RFC 4345
RIPEMD - ISO/IEC 10118-3
关于如何获得ERN批准,您可以参考文章:如何合法地向Apple App Store提交加密的应用程序 (或如何获得ERN).
Last updated
Was this helpful?