Skip to content

chore(ios): bump build number to 183 [skip-ci] - #461

Merged
RonenMars merged 4 commits into
mainfrom
chore/bump-ios-version-183
Jul 31, 2026
Merged

chore(ios): bump build number to 183 [skip-ci]#461
RonenMars merged 4 commits into
mainfrom
chore/bump-ios-version-183

Conversation

@RonenMars

Copy link
Copy Markdown
Owner

Automated version bump after successful ios upload.

Local ships failed at archive with four signing errors — no App Groups capability, no group support, missing entitlement, and "Xcode managed but signing settings require a manually managed profile".
All four came from one wrong value: provision_profile_uuid named an Xcode-managed profile carrying no App Groups entitlement, while the correct manual profile sat unused.

Profiles now come from dedicated 1Password items that hold the .mobileprovision as an attachment, and the UUID is derived from that file rather than read from a separate field, so it cannot drift from the profile it names.
Configure with OP_PROFILE_VAULT, OP_APP_PROFILE_ITEM and OP_WIDGET_PROFILE_ITEM; without them the previous UUID-field and Xcode-cache path still applies.

bootstrap-ios-signing.sh now installs profiles from base64 outside the cert-import block.
That block only runs when a Distribution cert is supplied, which is the CI path, so local runs never installed profiles from base64 at all and a cache miss surfaced only as an archive failure.
Decoded profiles are validated as real .mobileprovision files so a truncated secret fails at bootstrap instead of mid-archive.

Adds --dry-run, which reports every field and both profiles without writing .p8, .env.signing or installing anything.
It names the specific missing field instead of letting op fail inside a command substitution, which is what identified the gap here.
…igning env

sentry-cli runs as a build phase during archive and aborts the build when it has credentials for neither org nor project.
CI supplies SENTRY_AUTH_TOKEN, SENTRY_ORG and SENTRY_PROJECT from repository secrets, but a local ship had no source for them, so the archive died mid-build and the only way through was SENTRY_DISABLE_AUTO_UPLOAD=true — which silently costs symbolication.

bootstrap-local-signing-op.sh now reads all three from a 1Password item and bootstrap-ios-signing.sh appends them to .env.signing, which ship-ios.sh already sources.
Writing them from the generator rather than by hand is deliberate: .env.signing is regenerated wholesale on every bootstrap, so hand-added values disappear on the next run.

SENTRY_ORG defaults to the org_slug field.
sentry-cli builds API paths from the slug, so an org id 404s, and a login username — the first guess here — resolves to nothing at all.

Sentry stays optional throughout: absent config warns but never blocks signing, since CI supplies its own and a missing Sentry item should not stop a ship.
Also chmod 600 on .env.signing, which now carries an auth token rather than only paths and UUIDs.
services/sentry.ts reads the DSN from EXPO_PUBLIC_SENTRY_DSN and skips Sentry.init entirely when it is empty, and EXPO_PUBLIC_* values are inlined by Metro at bundle time.
The variable was set nowhere the build could see it: not in deploy.yml, not a repository secret, and .env is gitignored so a CI checkout has no file to read it from.
Every build produced by this workflow therefore shipped with Sentry uninitialised and reported no crashes at all.

The three SENTRY_* entries already present are build-time only — they authorise sentry-cli to upload dSYMs, which is symbolication for events that were never sent.

Wired into both jobs since they bundle the same JS.
Sourced from vars rather than secrets because the DSN is inlined into the shipped app and is public by design (services/sentry.ts:38); masking it in logs would hide nothing while making "was it set?" harder to diagnose, which is what made this hard to spot.
@RonenMars
RonenMars merged commit a6cfa74 into main Jul 31, 2026
4 of 5 checks passed
@RonenMars
RonenMars deleted the chore/bump-ios-version-183 branch July 31, 2026 15:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant