Files
Tarnax/scripts/README.md
T
2026-11-04 14:59:42 +00:00

2.6 KiB

Tarnax build and release

Run from the project folder (scripts also work from other working directories):

./scripts/test.sh                    # Plist/script validation, contract checks, unsigned Debug build
./scripts/test.sh --contracts-only   # Fast validation and contract checks
./scripts/build.sh                   # Unsigned Debug device build
./scripts/build.sh --release         # Unsigned optimized Release device build
./scripts/build.sh --release --signed # Signed build using existing provisioning
./scripts/release.sh                 # Release archive + registered-device distribution IPA
./scripts/release.sh --method debugging # Release archive + development-signed device IPA

Requirements: macOS, Xcode selected with xcode-select, Xcode command-line tools and Python 3. Signed builds require the relevant certificate/private key, a provisioning profile for net.absdev.Tarnax, and the configured team. The default team is 39R6U3437D; override it with DEVELOPMENT_TEAM if necessary.

The release configuration is optimized for both export methods. release-testing requires distribution signing and an ad hoc profile listing the recipient devices. debugging uses development signing and requires Developer Mode on recipient devices. Neither is an unrestricted public-install IPA. Install the exported IPA on a provisioned device with Xcode or Apple Configurator. Distribution to arbitrary public users requires a supported Apple distribution channel.

Provisioning updates are disabled by default. If you explicitly want Xcode to contact Apple and create/update signing certificates, app identifiers or profiles, add --allow-provisioning-updates. Sign in to the appropriate account in Xcode first. This flag does not upload the app to App Store Connect; export destination is local.

Outputs:

  • Builds: build/Debug/ or build/Release/, including build.log and DerivedData.
  • Releases: a unique folder under build/releases/, containing Tarnax.xcarchive, ExportOptions.plist, logs, and export/Tarnax.ipa with a SHA-256 checksum.
  • Override roots with BUILD_OUTPUT_DIR or RELEASE_OUTPUT_DIR.

Release export fails on any archive/export/signature/profile verification error. No unsigned ZIP is passed off as an installable IPA. Profiles include device identifiers: share only the intended IPA with testers and keep the remaining release diagnostics private.

The current contract harness exercises mocked transport and model behavior. It does not sign in to a live server or exercise the physical-device UI. This project has no XCTest target; the script compiles and runs the existing executable contract harness.