The ARM64 application uses semantic release versions, monotonically increasing Apple build numbers and matching annotated Git tags. The current source version is 2.1.1, Apple build 807, tagged as v2.1.1 after validation.
| Value | Source | Used by |
|---|---|---|
| ARM64 release version | MARKETING_VERSION in app/AppARM64.xcconfig |
CFBundleShortVersionString in both ARM64 application schemes. |
| Apple build number | CURRENT_PROJECT_VERSION in the four project build configurations in iSH.xcodeproj/project.pbxproj |
CFBundleVersion in the same products. |
| Source tag | annotated Git tag v<release version> |
Revision lookup and release provenance. |
app/Project.xcconfig retains the inherited non-ARM64 version. AppARM64.xcconfig overrides it for the main ARM64 app and is included by AppARM64-ffmpeg.xcconfig, so both shared ARM64 schemes receive the same version.
The arm64-openjdk21-prod-* tags identify dated Linux runtime baselines. They are not app release versions. The existing v2.0.0 tag points to the divergent OpenMinis release commit and is retained for provenance; it is not an ancestor of this branch.
Use semantic versioning for the shipped application:
- increment the patch component for compatible fixes without a new user-visible capability;
- increment the minor component for compatible runtime, terminal or integration capabilities;
- increment the major component for incompatible app, rootfs or embedding changes.
Increment the Apple build number for every uploaded build, including rebuilds of the same release version. Never reuse a build number already uploaded to App Store Connect.
- Change
MARKETING_VERSIONinapp/AppARM64.xcconfig. - Change every
CURRENT_PROJECT_VERSIONentry iniSH.xcodeproj/project.pbxprojto the same new integer. - Update the current version in
README.md,docs/IOS_APPLICATION.mdand this file. - Add a dated report under
docs/reports/releases/only when an archive or distribution run has produced evidence worth retaining.
Verify the fields:
grep -n 'MARKETING_VERSION' app/Project.xcconfig app/AppARM64.xcconfig
grep -n 'CURRENT_PROJECT_VERSION = ' iSH.xcodeproj/project.pbxprojAll project build configurations must print the same build number.
On the AArch64 Linux validation host:
CC=clang make build-arm64-linux-all
CC=clang make test-arm64-fcvt-vector
CC=clang make test-arm64-proc-mem-seek
make check-docs
git diff --check
git status --shortRun the runtime and workload gates required by the changed code as described in VALIDATION.md. Package-manager or repository failures must be recorded separately from emulator results.
Linux validation does not establish Xcode, signing or device behaviour. On macOS, build the two ARM64 schemes that will be distributed and smoke-test the exact archive on a physical device. The inherited Fastlane upload lane targets upstream iSH and must not be used without the changes listed in IOS_APPLICATION.md.
Commit the version, documentation and release evidence together. Push the commit, create an annotated tag on that exact commit, then push the tag:
git push origin master
git tag -a v2.1.1 -m 'ios-linuxkit 2.1.1'
git push origin v2.1.1Replace 2.1.1 with the version in app/AppARM64.xcconfig. Verify all three references:
git rev-parse HEAD
git rev-parse origin/master
git rev-list -n 1 v2.1.1
git ls-remote origin refs/heads/master refs/tags/v2.1.1A Git tag records source provenance. It does not prove that an iOS archive was signed, installed or uploaded.