Problem
Current release does not reflect the codebase.
Solution
Tag the codebase:
Create an updated package:
Release the updated version:
Instructions
How to archive an app
- Xcode › Product › Archive
How to notarize an app
- Xcode › Window › Organizer
- Select the archive and choose Direct Distribution.
- Wait for Apple to notarize the app.
- Hover over the archive and choose Export.
How to create a signed disk image
- Use create-dmg:
create-dmg AppName.app
- If you create or have an unsigned dmg from other tools, sign the dmg:
codesign --sign "Developer ID Application: Your Developer Name (TEAM_ID)" --force --options runtime --timestamp YourApp.dmg
How to notarize a disk image
(Can't find your team ID?)
- If needed, create an app-specific password. Log in to your Apple Account › App-Specific Passwords. Store it somewhere.
xcrun notarytool submit YourApp.dmg --apple-id "your-apple-id" --team-id "TEAM_ID" --password "your-app-specific-password" --wait
- Check the status:
xcrun notarytool info <SUBMISSION_ID> --apple-id "your-apple-id" --team-id "TEAM_ID" --password "your-app-specific-password"
How to staple a disk image
xcrun stapler staple YourApp.dmg
How to verify the app is ready for distribution
- Open the .dmg and move it to Applications
spctl -a -vvv /Applications/YourApp.app
codesign --verify --deep --strict --verbose=2 /Applications/YourApp.app
How to create a new GitHub release
- Create a new GitHub release
- Choose the tag you pushed
- Use the version as the release name (eg
v0.2.0)
- Upload the app package
- Add release notes
Problem
Current release does not reflect the codebase.
Solution
Tag the codebase:
git tag v0.2.0git push origin v0.2.0Create an updated package:
Release the updated version:
Instructions
How to archive an app
How to notarize an app
How to create a signed disk image
create-dmg AppName.appcodesign --sign "Developer ID Application: Your Developer Name (TEAM_ID)" --force --options runtime --timestamp YourApp.dmgHow to notarize a disk image
(Can't find your team ID?)
xcrun notarytool submit YourApp.dmg --apple-id "your-apple-id" --team-id "TEAM_ID" --password "your-app-specific-password" --waitxcrun notarytool info <SUBMISSION_ID> --apple-id "your-apple-id" --team-id "TEAM_ID" --password "your-app-specific-password"How to staple a disk image
xcrun stapler staple YourApp.dmgHow to verify the app is ready for distribution
spctl -a -vvv /Applications/YourApp.appcodesign --verify --deep --strict --verbose=2 /Applications/YourApp.appHow to create a new GitHub release
v0.2.0)