doc_internal/mac-artifacts.md
This describes how to build macOS artifacts as part of a release. These artifacts are uploaded to the GitHub release page, where they are discovered by the web site build script.
Artifacts may be built locally or in CI. Using CI is preferred.
Note Only fish-shell administrations may create releases. Released macOS packages require code signing and notarization via private Apple developer keys, which are owned by @ridiculous_fish. These keys are stored in GitHub secrets.
macOS packages may be built in CI through a GitHub workflow. This requires a fish-shell administrator as it requires invoking secret code signing keys.
Steps:
actions/upload-artifact@v4 step in the logs. This should have an "Artifact download URL" - click it and download!To build locally without notarizing and code signing, use the build_tools/make_macos_pkg.sh script:
> ./build_tools/make_macos_pkg.sh
Packages will be placed in ~/fish_built by default.
Note these packages will result in loud warnings or errors when others try to install them, because of the lack of code signing.
You will need the following:
rcodesign encode-app-store-connect-api-key.An example run:
> ./build_tools/make_macos_pkg.sh -s \
-f fish-developer-id-application.p12 \
-i fish-developer-id-installer.p12 \
-p "$NOTARIZE_PASSWORD" \
-n \
-j notarize-data.json