-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
57b8473
commit fca2884
Showing
1 changed file
with
24 additions
and
8 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,4 @@ | ||
# app-notarizer | ||
=============== | ||
Notarizes OSX apps built outside of Xcode, and optionally packages them into .dmgs for easy distribution. | ||
|
||
## About | ||
|
@@ -25,44 +24,61 @@ Optionally, it can also package the .app along with any other files in the same | |
|
||
#### Credentials | ||
app-notarizer needs to be given credentials to your Apple developer account the first time you run it. It stores them in `~/.app-notarizer.conf` so you don't have to keep looking them up. You need to provide these options: | ||
|
||
- Developer ID certificate (--cert) | ||
|
||
This is what the build is code signed against. Make sure you have a "Developer ID Certificate" on your developer account, and install it to your mac. You need its full name, which can be found in Keychain Access under certificates, eg: "Developer ID Application: YourName (xxxxxxxxx)" | ||
|
||
- Password (--pwd) | ||
|
||
You need to generate an app specific password for the tool to get access to your developer account. Create at https://appleid.apple.com under 'Security'. | ||
|
||
- Username (--username) | ||
|
||
Your Apple ID | ||
|
||
- Provider shortname (--provider) | ||
|
||
This is generally your apple team id, but if that doesn't work, you'll need your 'Provider Short Name', which can be found by running | ||
```sh | ||
xcrun iTMSTransporter -m provider -u YourAppleIDUsername -p apps-peci-ficp-word | ||
``` | ||
|
||
#### Notarization Options | ||
- Entitlements (--entitlements) | ||
By default, the tool uses a bare bones entitlements file to support a minimal Unity3d Mono build (with entitlements `disable-library-validation`, and `disable-executable-page-protection`). If you need more (or less), you can provide a path to your own entitlements file, in the standard format https://developer.apple.com/documentation/bundleresources/entitlements | ||
By default, the tool uses a bare bones entitlements file to support a minimal Unity3d Mono build (with entitlements `disable-library-validation`, and `disable-executable-page-protection`). If you need more (or less), you can provide a path to your own entitlements file, in the standard format https://developer.apple.com/documentation/bundleresources/entitlements | ||
|
||
- Replacement Mono library (--replace-mono-lib) | ||
This is a hack to allow notarization of older Unity mono builds, which include a mono library that is built against a too-old version of OSX. This lets you provide a path to a replacement, working, mono framework. If you aren't making a unity 5.x app, you don't need to worry about this. If you are, read this: https://asmaloney.com/2020/03/howto/notarizing-older-unity-games-on-macos/ | ||
This is a hack to allow notarization of older Unity mono builds, which include a mono library that is built against a too-old version of OSX. This lets you provide a path to a replacement, working, mono framework. If you aren't making a unity 5.x app, you don't need to worry about this. If you are, read this: https://asmaloney.com/2020/03/howto/notarizing-older-unity-games-on-macos/ | ||
|
||
#### DMG options | ||
If you plan to distribute your app as a DMG, it must also be notarized. Add the (--make-dmg) flag to make a basic "Drag to applications folder" DMG, with the following options: | ||
- DMG name (--dmg-name) | ||
The name of the output dmg file (without .dmg). Defaults to the same as the .app if not provided | ||
The name of the output dmg file (without .dmg). Defaults to the same as the .app if not provided | ||
|
||
- Window size (--window) | ||
The width and height of the dmg window when mounted | ||
The width and height of the dmg window when mounted | ||
|
||
- Background (--background) | ||
Path to an image to show as the background to the mounted dmg in finder. Defaults to a rather handsome arrow | ||
Path to an image to show as the background to the mounted dmg in finder. Defaults to a rather handsome arrow | ||
|
||
- App icon position (--icon-position) | ||
X and Y position of the .app's icon in the DMG. Defaults to the left hand side of the handsome arrow | ||
X and Y position of the .app's icon in the DMG. Defaults to the left hand side of the handsome arrow | ||
|
||
- Application shortcut position (--app-drop-link) | ||
X and Y position of the shortcut to the /Applications folder in the dmg. Defaults to the, oh yes, the right side of the handsome arrow | ||
X and Y position of the shortcut to the /Applications folder in the dmg. Defaults to the, oh yes, the right side of the handsome arrow | ||
|
||
## Example | ||
```sh | ||
app-notarizer --cert "Developer ID Application: My Name (CODECODE)" \ | ||
--username "[email protected]" \ | ||
--pwd "1234-abcd-5678-efgh" \ | ||
--provider BillGates12345678 \ | ||
--entitlements "~/MyApp/MyFancyEntitlements.entitlements" \ | ||
--background "VeryGoodBackground.png" \ | ||
--dmg-name "MyApp" \ | ||
"~/MyApp/ThisFolderContainsAllMyAppFiles" | ||
``` | ||
|
||
## Options | ||
```sh | ||
|