Channels, Tracks, and Multi-Architecture Support
TkushPatch provides delivery segmentation through Channels, coupled with automated hardware architecture targeting (Multi-ABI) across Android and iOS devices.
Multi-Architecture Delivery Overview
In Flutter, the same Dart codebase is compiled into native machine code targeting different processor architectures:
- Android:
arm64-v8a(modern 64-bit devices),armeabi-v7a(legacy 32-bit devices), andx86_64(emulators). - iOS:
arm64(modern iPhones and iPads).
TkushPatch groups these hardware variants under a single Logical Release (e.g., 1.4.0+42). During delivery, each mobile device automatically receives the patch compiled specifically for its processor.
1. Deployment Channels
A channel defines the operational target of a patch. In shorebird.yaml or during SDK initialization, the mobile app specifies its assigned channel:
| Channel | Target Environment | Governance & Security | Access Controls |
|---|---|---|---|
staging | Quality Assurance (QA) teams, internal testers, pre-production review. | Dedicated pre-production cryptographic key. | Restricted by QA Device Whitelist. |
stable | End-users in production (Play Store, App Store). | Production digital signature. | Governed by Staged Canary Rollout and Geo-Targeting. |
custom (e.g., beta, vip) | Pilot cohorts, regional branches, VIP early access. | Dedicated environment credentials. | Targeted by user list or progressive rollout. |
Strict Environment Isolation
TkushPatch strictly isolates testing and production tracks:
- Signature Partitioning: Cryptographic signatures created for staging are distinct from production signatures. A production binary strictly rejects patches created for internal tracks.
- Controlled Promotion: Moving a patch from
stagingtostablerequires an explicit promotion action in the Web Console or CLI, generating a verified production signature.
2. Store Tracks vs. TkushPatch Channels
Mobile applications follow designated publication tracks with Apple and Google:
| Store Track | Recommended TkushPatch Channel | Operational Role |
|---|---|---|
| Google Play Internal / TestFlight | staging | Fast verification of new features by the QA team. |
| Beta Track (Open or Closed) | beta (custom) | Evaluation with voluntary external beta testers. |
| Public Production Track | stable | Secure general availability with staged canary rollout. |
- Internal Testing: Builds installed from TestFlight or Google Play Internal track listen on
staging. Patches are delivered immediately during testing sessions. - Production Track: Builds distributed through app stores listen on
stable, protected by enterprise governance (Maker-Checker, staged rollout, Store Review Shield).
3. Multi-ABI and Hardware Architecture Support
Why Multi-ABI Is Essential
Flutter compiles Dart into machine code tailored to the device processor. Applying a binary patch generated for a different architecture causes fatal execution errors.
TkushPatch natively supports all Flutter architectures:
| Platform | Architecture (ABI) | CLI Identifier | Target Devices |
|---|---|---|---|
| Android | arm64-v8a | aarch64 | Over 90% of modern Android smartphones and tablets. |
| Android | armeabi-v7a | arm | Budget or older Android devices. |
| Android | x86_64 | x86_64 | Android Studio emulators and specialized devices. |
| iOS | arm64 | aarch64 | All recent iPhone and iPad hardware. |
4. Unified Logical Releases
TkushPatch abstracts hardware complexity under unified logical releases:
# Multi-architecture base release registration example
tk-ota-push release --version=1.4.0+42 --platform=android --arch=aarch64
tk-ota-push release --version=1.4.0+42 --platform=android --arch=arm
tk-ota-push release --version=1.4.0+42 --platform=android --arch=x86_64
tk-ota-push release --version=1.4.0+42 --platform=ios --arch=aarch64
Dynamic Architecture Negotiation
When a client checks for updates:
- The app sends its base release version, operating system, and CPU architecture.
- The TkushPatch server identifies the active patch compiled specifically for that architecture.
- The server validates delivery rules (rollout percentage, targeted countries).
- The device downloads only the binary diff tailored to its processor.
This transparent negotiation ensures stability across your entire mobile fleet.