docs: add macOS binary notarization docs (#5390)

## Issue being fixed or feature implemented
Missing docs

## What was done?
Added docs

## How Has This Been Tested?
In release of v19.1

## Breaking Changes
None

## Checklist:
_Go over all the following points, and put an `x` in all the boxes that
apply._
- [x] I have performed a self-review of my own code
- [ ] I have commented my code, particularly in hard-to-understand areas
- [ ] I have added or updated relevant unit/integration/functional/e2e
tests
- [x] I have made corresponding changes to the documentation
- [x] I have assigned this pull request to a milestone _(for repository
code-owners and collaborators only)_

---------

Co-authored-by: UdjinM6 <UdjinM6@users.noreply.github.com>
This commit is contained in:
PastaPastaPasta 2023-05-26 13:41:48 -05:00 committed by GitHub
parent ae0da14174
commit 141e5ef348
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -199,6 +199,41 @@ cat "$VERSION"/*/all.SHA256SUMS.asc > SHA256SUMS.asc
- Celebrate
### MacOS Notarization
#### Prerequisites
Make sure you have the latest Xcode installed on your macOS device. You can download it from the Apple Developer website.
You should have a valid Apple Developer ID under the team you are using which is necessary for the notarization process.
To avoid including your password as cleartext in a notarization script, you can provide a reference to a keychain item. You can add a new keychain item named AC_PASSWORD from the command line using the notarytool utility:
```
xcrun notarytool store-credentials "AC_PASSWORD" --apple-id "AC_USERNAME" --team-id <WWDRTeamID> --password <secret_2FA_password>
```
#### Notarization
Open Terminal, and navigate to the location of the .dmg file.
Then, run the following command to notarize the .dmg file:
```
xcrun notarytool submit dashcore-{version}-osx.dmg --keychain-profile "AC_PASSWORD" --wait
```
Replace "{version}" with the version you are notarizing. This command uploads the .dmg file to Apple's notary service.
The --wait option makes the command wait to return until the notarization process is complete.
If the notarization process is successful, the notary service generates a log file URL. Please save this URL, as it contains valuable information regarding the notarization process.
#### Notarization Validation
After successfully notarizing the .dmg file, extract "Dash-Qt.app" from the .dmg.
To verify that the notarization process was successful, run the following command:
```
spctl -a -vv -t install Dash-Qt.app
```
Replace "Dash-Qt.app" with the path to your .app file. This command checks whether your .app file passes Gatekeepers
checks. If the app is successfully notarized, the command line will include a line stating source=Notarized Developer ID.
### Additional information
#### How to calculate `m_assumed_blockchain_size` and `m_assumed_chain_state_size`