Skip to content

iOS: Xcode host app and TestFlight refresh pipeline - #77

Merged
nicglazkov merged 1 commit into
mainfrom
ios-testflight
Aug 1, 2026
Merged

iOS: Xcode host app and TestFlight refresh pipeline#77
nicglazkov merged 1 commit into
mainfrom
ios-testflight

Conversation

@nicglazkov

Copy link
Copy Markdown
Owner

Summary

  • SwiftUI host app for the shared ComposeApp framework, generated from iosApp/project.yml with xcodegen (the .xcodeproj stays gitignored)
  • Info.plist carries the Compose Multiplatform requirements: CADisableMinimumFrameDurationOnPhone, all four interface orientations, ITSAppUsesNonExemptEncryption=false, and the location usage string
  • Summit Pin app icon rendered to the 1024 px App Store asset from the Android vector drawable
  • Manual release signing with the Apple Distribution certificate and the API-created "ChainCheck AppStore" profile
  • .github/workflows/testflight.yml + scripts/testflight.py: scheduled twice-monthly refresh that re-archives and re-uploads only when the newest TestFlight build has under 35 days left, then confirms compliance, attaches the public beta group, and submits for beta review
  • kotlinx-coroutines pinned 1.11.0 -> 1.10.2: the 1.11.0 iOS klibs carry a Kotlin 2.2.20 ABI that this project's Kotlin 2.1.21 cannot consume (Android JVM never noticed)
  • PlatformMap iOS actual updated with the focus/layers parameters the common expect gained

Test plan

  • :composeApp:compileKotlinIosSimulatorArm64 compiles
  • Debug build installs and launches on an iOS 26.3 simulator; Home renders live tiers and Donner Summit weather against the production backend
  • Release archive signs with the distribution identity (manual signing)
  • :composeApp:testDebugUnitTest passes with coroutines 1.10.2
  • Workflow secrets (ASC key, cert, profile) land in repo settings before the first scheduled run

🤖 Generated with Claude Code

https://claude.ai/code/session_01Ljo18m9Wka5Shs5b1AtPYA

The iOS app now builds and runs: a SwiftUI host generated with xcodegen
wraps the shared ComposeApp framework, with the CMP-required Info.plist
keys (CADisableMinimumFrameDurationOnPhone, all four orientations,
ITSAppUsesNonExemptEncryption=false) and the Summit Pin icon rendered
for the App Store asset catalog.

Release signing is manual: Apple Distribution certificate plus an App
Store profile created through the App Store Connect API. A scheduled
workflow re-archives and re-uploads to TestFlight when the newest build
has less than 35 days of life left.

Also fixes the iOS compile: kotlinx-coroutines pinned to 1.10.2 because
1.11.0 klibs carry a Kotlin 2.2.20 ABI that Kotlin 2.1.21 cannot
consume, and the PlatformMap iOS actual gains the focus and layers
parameters the common expect grew.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ljo18m9Wka5Shs5b1AtPYA
@nicglazkov
nicglazkov merged commit 5bb316d into main Aug 1, 2026
3 checks passed
@nicglazkov
nicglazkov deleted the ios-testflight branch August 1, 2026 01:06
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