DailyRoundup uses two GitHub Actions workflows for automated building and releasing the iOS app:
build-check.yml — builds for iOS Simulator (with tests) and macOS (build-only) to verify the app compiles cleanly. Triggered by adding the check-build label to a PR or by manual dispatch from the Actions tab. A lightweight path-check job skips the expensive macOS runners if no iOS/macOS source files were changed. The check-build label is automatically removed after the workflow starts so it can be re-added for subsequent runs.release.yml — runs on every merge to main that touches iOS app files; archives the app, exports an IPA, and uploads it to App Store ConnectThe release workflow requires nine secrets configured at Settings → Secrets and variables → Actions in the GitHub repository. The distribution certificate, keychain password, and App Store Connect API credentials are shared between the iOS and macOS jobs.
APPLE_TEAM_IDYour 10-character Apple Developer team identifier. Also required by the build check workflow.
Where to find it: Log in at developer.apple.com → Account → Membership details. The Team ID is listed there (e.g. 6P7796G469).
DISTRIBUTION_CERTIFICATE_P12Your Apple Distribution certificate exported as a Base64-encoded .p12 file.
Note: This requires an Apple Distribution certificate, which is separate from the Apple Development certificate used for local builds. Create it first if it doesn’t exist before attempting to create the provisioning profile — the profile creation step requires it.
How to obtain it:
.certSigningRequest file..certSigningRequest file in the browser and click Continue..cer file and double-click it to install it into Keychain Access.distribution.p12, and set a strong password.base64 -i distribution.p12 | pbcopy
DISTRIBUTION_CERTIFICATE_PASSWORDThe password you set when exporting the .p12 file above.
KEYCHAIN_PASSWORDA password used to create a temporary keychain on the CI runner. Use any strong random string — this keychain is deleted after the build completes.
openssl rand -base64 32 | pbcopy
PROVISIONING_PROFILEThe App Store distribution provisioning profile for dev.dcwalker.DailyRoundup, Base64-encoded.
Prerequisites: The DISTRIBUTION_CERTIFICATE_P12 step above must be completed first — the Apple Distribution certificate must exist on developer.apple.com before the profile can be created.
How to obtain it:
If the next screen says “No Certificates are available”, stop here and complete the
DISTRIBUTION_CERTIFICATE_P12steps above first, then return to this step.
DailyRoundup AppStore — this must match the value in DailyRoundup/ExportOptions.plist. Click Generate..mobileprovision file.base64 -i DailyRoundup_AppStore.mobileprovision | pbcopy
ASC_API_KEY_IDThe Key ID of your App Store Connect API key.
Where to find it:
GitHub Actions) and select the Developer role, then click Generate.ABC1234DEF).ASC_ISSUER_IDThe Issuer ID associated with your App Store Connect API keys.
Where to find it: On the same App Store Connect API page (same steps 1–3 above), the Issuer ID is shown at the top of the page as a UUID (e.g. xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).
ASC_API_KEY_P8The private key downloaded when creating the App Store Connect API key above.
How to obtain it:
.p8 file immediately — it can only be downloaded once.-----BEGIN PRIVATE KEY-----
...
-----END PRIVATE KEY-----
The release.yml workflow includes a macOS job that archives, exports, and uploads the Mac Catalyst build to App Store Connect. It shares the DISTRIBUTION_CERTIFICATE_P12, DISTRIBUTION_CERTIFICATE_PASSWORD, and KEYCHAIN_PASSWORD secrets with the iOS job and requires one additional secret.
Note: Mac Catalyst apps use the same Apple Distribution certificate as iOS. If your certificate has Platform: All (visible on developer.apple.com → Certificates), no additional certificate setup is needed for the macOS job.
MAC_PROVISIONING_PROFILEThe Mac Catalyst App Store distribution provisioning profile for dev.dcwalker.DailyRoundup, Base64-encoded.
Prerequisites: The MAC_DISTRIBUTION_CERTIFICATE_P12 step above must be completed first — the Apple Distribution certificate must exist on developer.apple.com before the profile can be created.
How to obtain it:
If the next screen says “No Certificates are available”, stop here and complete the
MAC_DISTRIBUTION_CERTIFICATE_P12steps above first, then return to this step.
DailyRoundup Mac AppStore — this must match the value in DailyRoundup/ExportOptions-macOS.plist. Click Generate..provisionprofile file.base64 -i DailyRoundup_Mac_AppStore.provisionprofile | pbcopy