Skip to main content

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), and x86_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:

ChannelTarget EnvironmentGovernance & SecurityAccess Controls
stagingQuality Assurance (QA) teams, internal testers, pre-production review.Dedicated pre-production cryptographic key.Restricted by QA Device Whitelist.
stableEnd-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:

  1. Signature Partitioning: Cryptographic signatures created for staging are distinct from production signatures. A production binary strictly rejects patches created for internal tracks.
  2. Controlled Promotion: Moving a patch from staging to stable requires 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 TrackRecommended TkushPatch ChannelOperational Role
Google Play Internal / TestFlightstagingFast verification of new features by the QA team.
Beta Track (Open or Closed)beta (custom)Evaluation with voluntary external beta testers.
Public Production TrackstableSecure 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:

PlatformArchitecture (ABI)CLI IdentifierTarget Devices
Androidarm64-v8aaarch64Over 90% of modern Android smartphones and tablets.
Androidarmeabi-v7aarmBudget or older Android devices.
Androidx86_64x86_64Android Studio emulators and specialized devices.
iOSarm64aarch64All 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:

  1. The app sends its base release version, operating system, and CPU architecture.
  2. The TkushPatch server identifies the active patch compiled specifically for that architecture.
  3. The server validates delivery rules (rollout percentage, targeted countries).
  4. The device downloads only the binary diff tailored to its processor.

This transparent negotiation ensures stability across your entire mobile fleet.