fix headings

This commit is contained in:
uetchy 2019-06-05 14:31:39 +09:00
parent 652f44bde7
commit fd0c787869

View File

@ -5,15 +5,15 @@ date: 2019-06-05 00:00:00 +09:00
electron-builder を利用して macOS 向け Electron アプリをコード署名し、公証を通過させます。 electron-builder を利用して macOS 向け Electron アプリをコード署名し、公証を通過させます。
## Code Sign # Code Sign
アプリのコード署名は`electron-builder`によって自動で行われます。内部的には[electron-osx-sign](https://github.com/electron-userland/electron-osx-sign)が使用されます。 アプリのコード署名は`electron-builder`によって自動で行われます。内部的には[electron-osx-sign](https://github.com/electron-userland/electron-osx-sign)が使用されます。
リリース用のアプリにコード署名をするには、Keychain に有効な Developer ID Certificate が格納されている必要があります。macOS Developer Certificate は開発用のコード署名のみ可能なので、アプリを配布する場合には必ず Developer ID Certificate が必要です。 リリース用のアプリにコード署名をするには、Keychain に有効な Developer ID Certificate が格納されている必要があります。macOS Developer Certificate は開発用のコード署名のみ可能なので、アプリを配布する場合には必ず Developer ID Certificate が必要です。
まだ証明書を発行していない場合は、[Apple Developer](https://developer.apple.com/account/resources/certificates/list)で証明書の追加ウィザードに進み、**Developer ID Application**を選択して証明書を発行しKeychainに追加してください。 まだ証明書を発行していない場合は、[Apple Developer](https://developer.apple.com/account/resources/certificates/list)で証明書の追加ウィザードに進み、**Developer ID Application**を選択して証明書を発行してください。
## Notarize # Notarize
コード署名済みのアプリを[electron-notarize](https://github.com/electron-userland/electron-notarize)を使用して Apple Notary Service に提出します。 コード署名済みのアプリを[electron-notarize](https://github.com/electron-userland/electron-notarize)を使用して Apple Notary Service に提出します。
@ -34,7 +34,7 @@ notarize({
- **appleIdPassword**: Apple ID のパスワードです。2 要素認証を必要としないパスワードが必要なので、[Apple ID](https://appleid.apple.com/#!&page=signin)にアクセスして**App-specific Password**を発行してください。 - **appleIdPassword**: Apple ID のパスワードです。2 要素認証を必要としないパスワードが必要なので、[Apple ID](https://appleid.apple.com/#!&page=signin)にアクセスして**App-specific Password**を発行してください。
- **ascProvider**: Apple Developer の Membership に記載されている**Team ID**を指定します。 - **ascProvider**: Apple Developer の Membership に記載されている**Team ID**を指定します。
### electron-builderのafterSignフック ## electron-builder afterSign フック
electron-builder の afterSign フックを使用して、コード署名が済んだアプリを自動で Notary に提出します。 electron-builder の afterSign フックを使用して、コード署名が済んだアプリを自動で Notary に提出します。
@ -78,13 +78,12 @@ exports.default = async () => {
} }
``` ```
### Enable Hardened Runtime ## Enable Hardened Runtime
このままでは公証に失敗します。デフォルトで書き出されるバイナリでは、セキュリティの強化された[Hardened Runtime](https://developer.apple.com/documentation/security/hardened_runtime_entitlements)が有効になっていないためです。以下のようなエラーメッセージを貰います。 このままでは公証に失敗します。デフォルトで書き出されるバイナリでは、セキュリティの強化された[Hardened Runtime](https://developer.apple.com/documentation/security/hardened_runtime_entitlements)が有効になっていないためです。以下のようなエラーメッセージを貰います。
```jsonc ```json
{ {
// ...
"status": "Invalid", "status": "Invalid",
"statusSummary": "Archive contains critical validation errors", "statusSummary": "Archive contains critical validation errors",
"statusCode": 4000, "statusCode": 4000,
@ -111,12 +110,12 @@ exports.default = async () => {
} }
``` ```
### 詳細 ## 詳細
- https://developer.apple.com/documentation/security/notarizing_your_app_before_distribution/resolving_common_notarization_issues - https://developer.apple.com/documentation/security/notarizing_your_app_before_distribution/resolving_common_notarization_issues
- https://github.com/electron-userland/electron-builder/issues/3383 - https://github.com/electron-userland/electron-builder/issues/3383
## Verify Notary Status # Verify Notary Status
ただしく公証を得られたかどうかは`altool`で調べることができます。 ただしく公証を得られたかどうかは`altool`で調べることができます。
@ -153,4 +152,3 @@ xcrun altool --notarization-info <UUID> -u $APPLE_ID -p $APPLE_PASSWORD
Status Code: 0 Status Code: 0
Status Message: Package Approved Status Message: Package Approved
``` ```