W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
自從 v0.34.0, Electron 就允許提交應(yīng)用包到 Mac App Store(MAS) . 這個(gè)向?qū)峁┑男畔⒂?: 如何提交應(yīng)用和 MAS 構(gòu)建的限制.
注意: 從 v0.36.0,當(dāng)應(yīng)用成為沙箱之后,會(huì)有一個(gè) bug 阻止 GPU 進(jìn)程開(kāi)啟 , 所以在這個(gè) bug 修復(fù)之前,建議使用 v0.35.x .更多查看 issue #3871 .
注意: 提交應(yīng)用到 Mac App Store 需要參加 Apple DeveloperProgram , 這需要花錢.
下面步驟介紹了一個(gè)簡(jiǎn)單的提交應(yīng)用到商店方法.然而,這些步驟不能保證你的應(yīng)用被 Apple 接受;你仍然需要閱讀 Apple 的 Submitting Your App 關(guān)于如何滿足 Mac App Store 要求的向?qū)?
為了提交應(yīng)用到商店,首先需要從 Apple 獲得一個(gè)證書.可以遵循 existing guides.
獲得證書之后,你可以使用 Application Distribution 打包你的應(yīng)用, 然后前往提交你的應(yīng)用.這個(gè)步驟基本上和其他程序一樣,但是這 key 一個(gè)個(gè)的標(biāo)識(shí) Electron 的每個(gè)依賴.
首先,你需要準(zhǔn)備2個(gè)授權(quán)文件 .
child.plist
:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.app-sandbox</key>
<true/>
<key>com.apple.security.inherit</key>
<true/>
</dict>
</plist>
parent.plist
:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.app-sandbox</key>
<true/>
</dict>
</plist>
然后使用下面的腳本標(biāo)識(shí)你的應(yīng)用 :
#!/bin/bash
# Name of your app.
APP="YourApp"
# The path of you app to sign.
APP_PATH="/path/to/YouApp.app"
# The path to the location you want to put the signed package.
RESULT_PATH="~/Desktop/$APP.pkg"
# The name of certificates you requested.
APP_KEY="3rd Party Mac Developer Application: Company Name (APPIDENTITY)"
INSTALLER_KEY="3rd Party Mac Developer Installer: Company Name (APPIDENTITY)"
FRAMEWORKS_PATH="$APP_PATH/Contents/Frameworks"
codesign --deep -fs "$APP_KEY" --entitlements child.plist "$FRAMEWORKS_PATH/Electron Framework.framework/Versions/A"
codesign --deep -fs "$APP_KEY" --entitlements child.plist "$FRAMEWORKS_PATH/$APP Helper.app/"
codesign --deep -fs "$APP_KEY" --entitlements child.plist "$FRAMEWORKS_PATH/$APP Helper EH.app/"
codesign --deep -fs "$APP_KEY" --entitlements child.plist "$FRAMEWORKS_PATH/$APP Helper NP.app/"
if [ -d "$FRAMEWORKS_PATH/Squirrel.framework/Versions/A" ]; then
# Signing a non-MAS build.
codesign --deep -fs "$APP_KEY" --entitlements child.plist "$FRAMEWORKS_PATH/Mantle.framework/Versions/A"
codesign --deep -fs "$APP_KEY" --entitlements child.plist "$FRAMEWORKS_PATH/ReactiveCocoa.framework/Versions/A"
codesign --deep -fs "$APP_KEY" --entitlements child.plist "$FRAMEWORKS_PATH/Squirrel.framework/Versions/A"
fi
codesign -fs "$APP_KEY" --entitlements parent.plist "$APP_PATH"
productbuild --component "$APP_PATH" /Applications --sign "$INSTALLER_KEY" "$RESULT_PATH"
如果你是 OS X 下的應(yīng)用沙箱使用新手,應(yīng)當(dāng)仔細(xì)閱讀 Apple 的 Enabling App Sandbox 來(lái)有一點(diǎn)基礎(chǔ),然后向授權(quán)文件添加你的應(yīng)用需要的許可 keys .
在簽名應(yīng)用之后,可以使用應(yīng)用 Loader 來(lái)上傳到 iTunes 鏈接處理 , 確保在上傳之前你已經(jīng) created a record. 然后你能 submit your app for review.
為了讓你的應(yīng)用沙箱滿足所有條件,在 MAS 構(gòu)建的時(shí)候,下面的模塊被禁用了 :
crashReporter
autoUpdater
并且下面的行為也改變了:
也由于應(yīng)用沙箱的使用方法,應(yīng)用可以訪問(wèn)的資源被嚴(yán)格限制了 ; 閱讀更多信息 App Sandboxing .
取決于你所在地方的國(guó)家和地區(qū) , Mac App Store 或許需要記錄你應(yīng)用的加密算法 , 甚至要求你提交一個(gè) U.S 加密注冊(cè)(ERN) 許可的復(fù)印件.
Electron 使用下列加密算法:
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: