Merge pull request #5540 from kcrt/master

Update: Japanese version of MAS submission guide
This commit is contained in:
Cheng Zhao 2016-05-16 10:33:25 +09:00
commit f5442a4888
3 changed files with 48 additions and 31 deletions

View file

@ -16,6 +16,7 @@ _リンクになっていないリストは未翻訳のものです。_
* [セキュリティ](tutorial/security.md)
* [アプリケーションの配布](tutorial/application-distribution.md)
* [Mac App Store 提出ガイド](tutorial/mac-app-store-submission-guide.md)
* Windows Store Guide (tutorial/windows-store-guide.md)
* [アプリケーションのパッケージ化](tutorial/application-packaging.md)
* [ネイティブのNodeモジュールを使用する](tutorial/using-native-node-modules.md)
* [メインプロセスのデバッグ](tutorial/debugging-main-process.md)
@ -23,6 +24,8 @@ _リンクになっていないリストは未翻訳のものです。_
* [DevTools エクステンション](tutorial/devtools-extension.md)
* [Pepper Flashプラグインを使用する](tutorial/using-pepper-flash-plugin.md)
* [Widevine CDMプラグインを使用する](tutorial/using-widevine-cdm-plugin.md)
* Testing on Headless CI Systems (Travis, Jenkins) (tutorial/testing-on-headless-ci.md)
# チュートリアル
@ -40,14 +43,14 @@ _リンクになっていないリストは未翻訳のものです。_
### カスタムDOM要素:
* [`File` Object](api/file-object.md)
* `<webview>` Tag
* `<webview>` Tag api/web-view-tag.md
* [`window.open` 関数](api/window-open.md)
### Main Processのモジュール:
* [app](api/app.md)
* [autoUpdater](api/auto-updater.md)
* BrowserWindow
* BrowserWindow (api/browser-window.md)
* [フレームの無いウィンドウ](api/frameless-window.md)
* [contentTracing](api/content-tracing.md)
* [dialog](api/dialog.md)
@ -59,7 +62,8 @@ _リンクになっていないリストは未翻訳のものです。_
* [powerSaveBlocker](api/power-save-blocker.md)
* [protocol](api/protocol.md)
* [session](api/session.md)
* webContents
* systemPreferences (api/system-preferences.md)
* webContents (api/web-contents.md)
* [Tray](api/tray.md)
### Renderer Processのモジュール (Web Page):
@ -79,11 +83,13 @@ _リンクになっていないリストは未翻訳のものです。_
## 開発
* Coding Style
* Source Code Directory Structure
* Technical Differences to NW.js (formerly node-webkit)
* Build System Overview
* Build Instructions (OS X)
* Build Instructions (Windows)
* Build Instructions (Linux)
* Setting Up Symbol Server in debugger
* Coding Style (development/coding-style.md)
* Source Code Directory Structure (development/source-code-directory-structure.md)
* Technical Differences to NW.js (formerly node-webkit)(development/atom-shell-vs-node-webkit.md)
* Build System Overview (development/build-system-overview.md)
* Build Instructions (OS X) (development/build-instructions-osx.md)
* Build Instructions (Windows) (development/build-instructions-windows.md)
* Build Instructions (Linux) (development/build-instructions-linux.md)
* Debug Instructions (Windows) (development/debug-instructions-windows.md)
* Setting Up Symbol Server in debugger (development/setting-up-symbol-server.md)

View file

@ -2,13 +2,11 @@
v0.34.0から、ElectronはMac App Store (MAS)にパッケージ化したアプリを登録することができます。このガイドでは、MASビルド用の制限とアプリを登録する方法についての情報を提供します。
__Note:__ v0.36.0から、アプリがサンドボックス化された後GPUプロセスを妨害するバグがあるので、このバグが修正されるまでは、v0.35.xを使用することを推奨します。[issue #3871][issue-3871]で、このことに関する追加情報を確認できます。
__Note:__ Mac App Storeにアプリを登録するには、費用が発生する[Apple Developer Program][developer-program]に登録する必要があります。
## アプリを登録する方法
次の手順は、Mac App Sotreにアプリを登録する簡単な手順を説明します。しかし、これらの手順はAppleによってAppが承認されることを保証するものではありません。Mac App Storeの要件については、Appleの[Submitting Your App][submitting-your-app]ガイドを読んでおく必要があります。
次の手順は、Mac App Storeにアプリを登録する簡単な手順を説明します。しかし、これらの手順はAppleによってAppが承認されることを保証するものではありません。Mac App Storeの要件については、Appleの[Submitting Your App][submitting-your-app]ガイドを読んでおく必要があります。
### 証明書の取得
@ -44,11 +42,13 @@ Appleから証明書を取得した後、[Application Distribution](application-
<dict>
<key>com.apple.security.app-sandbox</key>
<true/>
<key>com.apple.security.temporary-exception.sbpl</key>
<string>(allow mach-lookup (global-name-regex #"^org.chromium.Chromium.rohitfork.[0-9]+$"))</string>
</dict>
</plist>
```
次のスクリプトでアプリをサインします。
次のスクリプトでアプリを署名します。
```bash
#!/bin/bash
@ -65,26 +65,37 @@ 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"
codesign -s "$APP_KEY" -f --entitlements child.plist "$FRAMEWORKS_PATH/Electron Framework.framework/Versions/A/Electron Framework"
codesign -s "$APP_KEY" -f --entitlements child.plist "$FRAMEWORKS_PATH/Electron Framework.framework/Versions/A/Libraries/libffmpeg.dylib"
codesign -s "$APP_KEY" -f --entitlements child.plist "$FRAMEWORKS_PATH/Electron Framework.framework/Versions/A/Libraries/libnode.dylib"
codesign -s "$APP_KEY" -f --entitlements child.plist "$FRAMEWORKS_PATH/Electron Framework.framework"
codesign -s "$APP_KEY" -f --entitlements child.plist "$FRAMEWORKS_PATH/$APP Helper.app/Contents/MacOS/$APP Helper"
codesign -s "$APP_KEY" -f --entitlements child.plist "$FRAMEWORKS_PATH/$APP Helper.app/"
codesign -s "$APP_KEY" -f --entitlements child.plist "$FRAMEWORKS_PATH/$APP Helper EH.app/Contents/MacOS/$APP Helper EH"
codesign -s "$APP_KEY" -f --entitlements child.plist "$FRAMEWORKS_PATH/$APP Helper EH.app/"
codesign -s "$APP_KEY" -f --entitlements child.plist "$FRAMEWORKS_PATH/$APP Helper NP.app/Contents/MacOS/$APP Helper NP"
codesign -s "$APP_KEY" -f --entitlements child.plist "$FRAMEWORKS_PATH/$APP Helper NP.app/"
codesign -s "$APP_KEY" -f --entitlements child.plist "$APP_PATH/Contents/MacOS/$APP"
codesign -s "$APP_KEY" -f --entitlements parent.plist "$APP_PATH"
productbuild --component "$APP_PATH" /Applications --sign "$INSTALLER_KEY" "$RESULT_PATH"
```
OS Xで、サンドボックスにアプリを新しく追加した場合、基本的な考え方は、Appleの[Enabling App Sandbox][enable-app-sandbox]を読み、エンタイトルメントファイルにアプリに必要なパーミッションキーを追加します。
OS Xでのアプリのサンドボックス化を行うことが初めてなら、Appleの[Enabling App Sandbox][enable-app-sandbox]を通読し、基本的な考え方を確認してから、、エンタイトルメントファイルにアプリに必要なパーミッションキーを追加します。
### Appをアップロードし、レビューに登録する
### Appをアップロードする
アプリに署名後、iTunes ConnectにアップロードするためにApplication Loaderを使用できます。アップロードする前に[created a record][create-record]を確認してください。そして[レビュー用にアプリを登録できます][submit-for-review].
アプリに署名後、iTunes ConnectにアップロードするためにApplication Loaderを使用できます。アップロードする前に[created a record][create-record]を確認してください。
### `temporary-exception`の使用について
アプリのサンドボックス化を行った場合、[App Sandbox Temporary Exception Entitlements][temporary-exception]にしたがって、`temporary-exceptionがエンタイトルメントに追加されます。そのため、なぜこのエントリが必要かを説明する必要があります。
アウリケーションがChromiumブラウザに基づいて作られていることを説明する必要があるでしょうが、それでもこの事のためにAppleの審査から落ちる可能性は残っています。
### アプリケーションを審査に提出
これらのステップを終えた後、[レビュー用にアプリを登録できます][submit-for-review].
## MAS Buildの制限
@ -131,7 +142,7 @@ Electron は次の暗号アルゴリズムを使用しています:
* RC5 - http://people.csail.mit.edu/rivest/Rivest-rc5rev.pdf
* RIPEMD - [ISO/IEC 10118-3](http://webstore.ansi.org/RecordDetail.aspx?sku=ISO%2FIEC%2010118-3:2004)
ERNの同意を取得するには、 [How to legally submit an app to Apples App Store when it uses encryption (or how to obtain an ERN)][ern-tutorial]を参照してくだsだい。
ERNの同意を取得するには、 [How to legally submit an app to Apple's App Store when it uses encryption (or how to obtain an ERN)][ern-tutorial]を参照してください。
[developer-program]: https://developer.apple.com/support/compare-memberships/
[submitting-your-app]: https://developer.apple.com/library/mac/documentation/IDEs/Conceptual/AppDistributionGuide/SubmittingYourApp/SubmittingYourApp.html
@ -142,3 +153,4 @@ ERNの同意を取得するには、 [How to legally submit an app to Apples
[app-sandboxing]: https://developer.apple.com/app-sandboxing/
[issue-3871]: https://github.com/electron/electron/issues/3871
[ern-tutorial]: https://carouselapps.com/2015/12/15/legally-submit-app-apples-app-store-uses-encryption-obtain-ern/
[temporary-exception]: https://developer.apple.com/library/mac/documentation/Miscellaneous/Reference/EntitlementKeyReference/Chapters/AppSandboxTemporaryExceptionEntitlements.html

View file

@ -30,7 +30,6 @@ Electronは新しいバージョンのChromiumを出来るだけ早くサポー
* セキュア(https)な内容のみを表示してください。
* リモートの内容を表示する全てのレンダラでNode integrationを無効にしてください (`webPreferences`を使用)
* `webSecurity`を無効にしないください。無効にすると、same-origin policyが無効になります。
*
* [`Content-Security-Policy`](http://www.html5rocks.com/en/tutorials/security/content-security-policy/)を定義して、スクリプトの読み込み元を制限してください。(例: `script-src 'self'`)
* [`eval`を無効にしてください。](https://github.com/nylas/N1/blob/0abc5d5defcdb057120d726b271933425b75b415/static/index.js#L6) evalは文字列をコードとして実行してしまいます。
* `allowDisplayingInsecureContent` を有効にしないでください。