iOS: release/dev/prov builds, publish.sh, dev icon variants

release = org.cdnutter.<name> (main, Gitea release + Sideload)
dev     = org.cdnutter.<name>-dev (dev branch, Gitea pre-release + Sideload Developer)
prov    = org.cdnutter.<name>-prov (personal signed, never published)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
rootandClaude Opus 5.5 committed 2026-11-10 10:18:32 -08:00
1 parent fabca5d1aa
commit ec1cbdfe75
9 files changed
+133 -59

No files matched your search

+12 -4
View File
@@ -338,12 +338,20 @@ docs/specs.txt original design doc for the desktop separator
```sh
cd ios
scripts/build-ipa.sh # unsigned build/public/stemify-<version>.ipa
scripts/build-remote.sh # from DevOps: build on White-M1 and pull IPAs back to build/{public,prov}
xcodegen generate # or open Stemify.xcodeproj in Xcode
scripts/build-remote.sh # from DevOps: dev build on WHITE-M1, pulled back to build/dev
scripts/build-remote.sh release # release build, build/release
scripts/build-remote.sh prov # personal signed build, build/prov
scripts/build-ipa.sh release|dev|prov # same thing directly on the Mac
xcodegen generate # or open Stemify.xcodeproj in Xcode
```
The version lives in `ios/project.yml` (`MARKETING_VERSION` and `CURRENT_PROJECT_VERSION`). To release, tag `ios-v<version>`, attach `stemify-<version>.ipa`, then run `GITEA_TOKEN=... ios/scripts/make-source.py` and commit the new `ios/source.json`.
There are three builds, each with its own bundle ID so they install side by side:
- `org.cdnutter.stemify` (build/release): releases from `main`. `scripts/publish.sh release` tags `ios-v<version>`, uploads the IPA to Gitea and Sideload, and regenerates `ios/source.json`.
- `org.cdnutter.stemify-dev` (build/dev): "Stemify Dev" with the ribbon icon, built from the `dev` branch. `scripts/publish.sh dev` makes a Gitea pre-release `ios-v<version>-dev.<build>` and uploads it to Sideload Developer. Bump `CURRENT_PROJECT_VERSION` for each one.
- `org.cdnutter.stemify-prov` (build/prov): "Stemify Prov", signed with the personal profile in `ios/prov/` so CarPlay and Siri work. Never published.
The version lives in `ios/project.yml` (`VERSION_LABEL`, `MARKETING_VERSION` and `CURRENT_PROJECT_VERSION`).
**Android** needs JDK 21 and the Android SDK (`android/local.properties` points at it):