Docs
Move from Loadly
Moving test builds from Loadly (loadly.io, run by Pgyer) is mostly a re-upload: send the builds still in testing again, map your install settings, give testers a channel link instead of a permanent one, swap the API script for the CLI and clean up what you left on Loadly. This guide covers each step and what it needs.
Step 1, Every plan
What changes
Links follow your plan: 3 days without an account, 7 days on Free, and as long as you subscribe on Pro and Team. They do not live forever. In return every upload stays yours to remove, and a deleted build can be restored for 7 days. For a link that lasts, use a channel link: one address that always opens the newest build you put into it.
Step 2, Every plan, CLI on Pro and Team
Upload the builds still in testing
Loadly links stay on Loadly, 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). An Android .aab works too, with a free account: it becomes one APK testers install.
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.
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, Free, Pro and Team as noted
Map your install settings
Public install on Loadly is a plain link here, on every plan. Password install is a password per build (Free and up), or a password per extra link (Pro, up to 3 extra links per build; Team up to 20). Invite install is a private project that only invited testers can open (Team).
Question and answer installs have no direct match: use a password, or give each audience its own extra link with its own password. An install end date is a stop date on the build or on an extra link (Pro and Team). There is no start date: share the link when the build should open, or pause the link and resume it at that time.
Link controlsnpx appforshare link 12345 --stop 2026-12-31 npx appforshare link add 12345 --label "Client A" --password "$CLIENT_A_PASSWORD" --max-installs 25Step 4, Pro and Team
Short links become channels
If your scripts set buildChannelShortcut to keep one short address per app, use a channel instead. A channel such as Beta has one link and QR code that always opens the newest build in it; iPhones get the iOS build and Android phones the Android build. Pick your own address such as /c/acme-beta. Putting an older build back into the channel is a rollback of the link.
Beta and Live channelsnpx appforshare upload app.ipa --channel beta npx appforshare channel-address acme-beta --channel beta --app com.example.shopStep 5, Pro and Team
Swap the API script
Replace the POST to https://api.loadly.io/apiv2/app/upload with the AppForShare CLI and an APPFORSHARE_TOKEN secret made in Dashboard, Settings. buildUpdateDescription becomes --notes, buildPassword becomes --password, and buildChannelShortcut becomes --channel. The GitHub Action and the fastlane plugin run the same upload. Calls to app/check become the in-app update check, a public JSON address per channel.
Or keep the script and change its base URL: AppForShare answers the same API v2 calls at https://appforshare.io/api/ci/pgyer (app/upload, getCOSToken with buildInfo, app/check) with your AppForShare token in _api_key. Invitation installs and fields with no match here are ignored and listed in the answer. Up to 100 MB per request.
In-app update checknpx appforshare upload app-release.apk --notes "Checkout fix" --password "$BUILD_PASSWORD" --channel beta # or keep the script, new base URL and token: curl https://appforshare.io/api/ci/pgyer/apiv2/app/upload -F _api_key=$APPFORSHARE_TOKEN -F [email protected] -F buildUpdateDescription="Checkout fix"Step 6, Every plan, onboarding link on Pro and Team
iPhone testers
Testers need no account. Send them 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 devices to your list, and with an App Store Connect connection you register them on Apple from the Devices page.
Remember my iPhoneStep 7, Every plan with an account
Tester feedback
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.
Tester feedbackStep 8, Pro and Team
Notifications
Post new builds, installs, tester feedback and store events to Slack, Microsoft Teams, Google Chat, Discord or a signed webhook.
WebhooksStep 9, Your choice
Clean up on Loadly
Delete the builds you uploaded to Loadly with an account, so old links stop handing out old builds. Builds uploaded there without an account cannot be removed by you: Loadly's help page says "Apps uploaded without an associated Loadly.io account cannot be disabled or deleted manually". If one of those must come down, contact Loadly.
Loadly: deleting an upload
Questions
- Do my Loadly links move over?
- No. They stay on Loadly. Upload the builds your testers still need here and send the new links, or one channel link that keeps working for later builds.
- Why do links expire here?
- Links follow your plan: 7 days on Free and as long as you subscribe on Pro and Team. On Free, $2 once keeps one link live for 60 days. A channel link (Pro and Team) is the address to hand out for good.
- 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.
- Do I need to send ID documents?
- No. Sign up with email or Google. No ID card, passport or business license is asked for.
- Can I upload zip or mp4 files?
- No. AppForShare takes app builds only: .ipa, a zipped .app, .apk and .aab.
- Can I still set a password per client?
- Yes. A password per build works on Free. On Pro and Team, extra links give each client its own password, stop date and install cap.
Weighing the two first? Read AppForShare vs Loadly. For the upload commands, see Upload from CI.