Docs
Move from AppsOnAir
Moving test builds from AppsOnAir (by Logicwind) takes an afternoon: upload the builds still in testing, give each client its own link, give testers one link for later builds, swap the CLI step and point notifications at your chat. CodePush, deep links and push can stay where they are. This guide covers each step and what it needs.
Step 1, Every plan
What changes
There is no workspace or app to set up before the first upload: drop an .ipa, .apk or .aab and you get a link and a QR code. Passwords work on Free. On Pro and Team links stay live while you subscribe, with no 90 day limit per link. Testers install from the phone browser and need no app and no account.
Step 2, Every plan, CLI on Pro and Team
Upload the builds still in testing
AppsOnAir links stay on AppsOnAir, so upload each build your testers still need again: from the web page, or with the CLI when there are many. Files up to 150 MB work on Free; bigger builds need Pro (2 GB) or Team (4 GB).
For Flutter and React Native projects, run init once: it finds where your iOS and Android builds land and writes appforshare.config.json. Then one upload sends the newest .ipa and the newest .apk or .aab, each with its own notes. upload also takes a folder and sends the newest build in it.
All CLI commandsexport APPFORSHARE_TOKEN=afs_your_token npx appforshare init --channel beta npx appforshare upload --ios-notes "Login fix" --android-notes "Login fix, Android 15"Step 3, Pro and Team
One link per client, with its own password and end date
AppsOnAir gives a build several share links, each with its own expiry. Here each build has its own link, plus extra share links: up to 3 per build on Pro and 20 on Team. Each extra link has a label only you see, its own password, stop date, install cap and install count. Turn one off and the build and the other links keep working.
For the whole build there are link controls: pause it, give it a stop date or an install limit. They apply to every link of the build.
Several links per buildnpx appforshare link add 12345 --label "Client A" --password "$CLIENT_A_PASSWORD" --stop 2026-12-31 --max-installs 25 npx appforshare link list 12345Step 4, Pro and Team
One link for every future build
Put builds into a channel such as Beta and send its link once: it always opens the newest build in the channel, iPhones get the iOS build and Android phones the Android build. Pick your own address such as /c/acme-beta. One channel per audience also works as a simple stand-in for AppsOnAir groups on Pro.
Beta and Live channelsnpx appforshare upload app.ipa --channel beta npx appforshare channel-address acme-beta --channel beta --app com.example.shopStep 5, Team
Groups and testers
AppsOnAir groups such as QA or Clients become tester groups. Give a group its projects in one step, make projects private so only invited testers open them, and see for each tester who installed the newest build. Testers are emailed on new builds. Import them from a CSV file.
Tester groups and statusStep 6, Every plan, onboarding link on Pro and Team
iPhone testers
There is no tester app to install. Send testers the free UDID finder at /udid and ask them to tap Remember this device: from then on every iOS install page says whether the build includes that iPhone. On Pro, each iOS project has an onboarding link that saves the device to your list, and with an App Store Connect connection you register it on Apple from the Devices page.
Remember my iPhoneStep 7, Every plan with an account
Tester feedback without an app
Feedback in AppsOnAir is sent from its mobile app or the AppRemark SDK. Here testers press Send feedback on the install page, or your test build opens the in-app feedback link from a debug menu or a shake. They write what happened and add up to 5 screenshots they can draw on; no SDK and no sign in. The project's Testing tab has shake samples for Swift, Kotlin, React Native and Flutter.
In-app feedback linkStep 8, Pro and Team
Swap the CLI step
Replace the appsonair-ota upload step with the AppForShare CLI and an APPFORSHARE_TOKEN secret made in Dashboard, Settings. In GitHub Actions the action can leave file empty to use appforshare.config.json (or take a folder), with notes per platform, and gives you ios-url and android-url. A fastlane plugin is there too.
CI guides- name: Share builds id: afs uses: appforshare/appforshare-action@v1 with: token: ${{ secrets.APPFORSHARE_TOKEN }} ios-release-notes: "Login fix" android-release-notes: "Login fix, Android 15" - run: echo "${{ steps.afs.outputs.ios-url }} ${{ steps.afs.outputs.android-url }}"Step 9, Pro and Team
Notifications
Post new builds, installs, tester feedback and store events to Google Chat, Slack, Microsoft Teams, Discord or a signed webhook. For Google Chat, paste the space's incoming webhook URL under Integrations.
Google Chat stepsStep 10, Pro and Team
Pull a broken build
When a build turns out broken, retire it with a note. Its link takes no installs and sends testers to the newest build of the app, channels skip it, and the in-app update check tells your test build. Apps already installed keep working.
Retire a test buildnpx appforshare retire 12345 --reason "Crashes on login"Step 11, Your choice
What stays on AppsOnAir
CodePush, AppLink deep links, push notifications and AppSync are separate AppsOnAir products for apps in the stores. AppForShare has none of them. You can keep them and move only the test builds.
Questions
- Do my AppsOnAir links move over?
- No. They stay on AppsOnAir until they expire. Upload the builds your testers still need here and send the new links, or one channel link that keeps working for later builds.
- Can I give each client a different password on the same build?
- Yes, on Pro (up to 3 extra links per build) and Team (up to 20). Each link has its own password, stop date, install cap and count.
- My build is over 150 MB. What do I need?
- Pro takes files up to 2 GB and Team up to 4 GB. The CLI sends big builds in parts and resumes after a dropped connection.
- Can I upload an Android .aab?
- Yes, with a free account. It becomes one universal APK testers install from the link.
- Do my testers need an app?
- No. They open the link on the phone and install. On Team, invited testers can add their builds page to the home screen and get a notification for new builds; it is a web page, not a store app.
- Do I have to stop using CodePush or deep links?
- No. Those are separate products. Move only the builds and keep the rest where it is.
Weighing the two first? Read AppForShare vs AppsOnAir. For the upload commands, see Upload from CI.