AppForShare

IPA or APK link that never expires: what keeps a build installable

· 7 min read

IPA or APK link that never expires: what keeps a build installable

"A link that never expires" is one of the most searched wishes in test build sharing, and some hosts promise exactly that. Loadly (loadly.io, run by Pgyer) says its links stay active with no end date, as read on November 3, 2026. It is a fair thing to want: nobody likes testers writing "the link is dead" the morning of a demo. But the link is only the outside of the problem. What testers really need is a link that installs a build that still works. This article explains what ends an iOS or Android test build no matter how long the link lives, why old links can hurt, and what a better "permanent" link looks like.

What ends an iOS test build, whatever the link does

An iOS test build installed from a link is signed for ad hoc, development or enterprise distribution. Each of those has a clock and a list that sit inside the .ipa itself.

  • The provisioning profile ends. Ad hoc profiles and distribution certificates are valid for about a year. When the profile inside the .ipa has ended, the build will not install, and an app already installed from it stops opening. A link that never expires keeps serving a file that can no longer run.
  • Only listed devices can install. An ad hoc profile names the UDIDs of the devices allowed to run the build. A new tester's iPhone is not in an old build, however long the link lives. The fix is to add the device and build again, which gives you a new .ipa. See ad hoc device registration.
  • The certificate can be revoked. If someone revokes the signing certificate, for example after losing it, builds signed with it stop installing. See lost iOS distribution certificate.
  • Developer Mode. On iOS 16 and later, ad hoc and development builds need Developer Mode turned on in Settings, Privacy and Security. That is a phone setting, not a link setting, but it is often why a "working" link does not install.

So on iOS the useful life of a test build is set by its profile, usually under a year, and by which devices it lists. Our IPA inspector shows the profile expiry and the device list of any .ipa in the browser, without uploading it.

What ends an Android test build

Android is looser: an APK signed with a stable key can install for years. Two things still end its useful life.

  • The phone moves on. An old build may target an Android version that newer phones warn about, or miss fixes your backend now expects. Your API changes faster than an APK on a link.
  • Signature conflicts. A tester who installed a build signed with another key, such as the Play version, sees "App not installed" until they remove it. That is the same with any link. See APK and AAB signing for sideloading.

The hidden cost of links that never die

A test build is meant to be short lived. Once a build with a bug or a test server address is out on a permanent link, it keeps spreading: forwarded in a chat, pinned in a channel, saved in a client's email. Months later someone installs it, hits a bug you fixed long ago and reports it again. Worse, if the build should not be public at all, a link that never expires is a link that never closes.

That is why it matters whether you can take a build down. Loadly's help page says apps uploaded without an associated account cannot be disabled or deleted manually. If you use a host with permanent links, upload signed in so you can delete builds later. On AppForShare every upload can be removed by its owner, and deleted builds can be restored for 7 days.

Testers staying on old builds is a problem of its own. We cover it in how to stop testers using an old build.

A better kind of permanent link

What people want from a link that never expires is usually this: one address they can hand out once, put in a README or print on a demo card, that always installs a build that works. That is not one build's link kept alive. It is a link that moves with your builds.

  • A channel link. On AppForShare Pro and Team, a channel such as Beta has one link and QR code that always open the newest build you put into it. iPhones get the iOS build and Android phones the Android build. The link stays live while you subscribe, and you can pick a readable address such as /c/acme-beta.
  • Rollback. If the newest build is bad, put the previous one back into the channel and the same link points at it again. Apps already installed on phones are not changed.
  • Retire a broken build. Mark a build retired with a note. Its own link takes no more installs and sends testers to the newest build, and channels skip it. See retire a test build.
  • Stops when you want them. Pause a link, give it a stop date or cap its installs (Pro and Team), so a link lasts as long as you decide, not as long as the host decides.

Combine that with a profile that covers your testers' devices and an install page that tells testers why a build will not install (see install help), and you get what "never expires" was meant to deliver.

Free and cheap options, compared

If you do not want a subscription, here is what each option gives for a long lived link, as listed on each vendor's site in November 2026.

OptionHow long the link livesCostPoints to weigh
LoadlyNo end dateFreeUploads made without an account cannot be deleted; run by the company behind Pgyer under Chinese law
InstallOnAir extensions+1 month, +6 months or +1 year per build$1.89, $4.99 or $9.99 once per buildStackable, no subscription; ads on install pages
DiawiCounts from the last install; extension add-onsPaid plans and add-ons in EURSmall free limits (20 MB, 1 day, 2 installs on a free account)
AppForShare Free, keep one link60 days from payment, up to 120 days ahead$2 onceOne link per account at a time
AppForShare Pro channelWhile you subscribe, always the newest build$12 a monthRollback, retire, pause and stop dates

For keeping a single build up for a long time at the lowest cost, Loadly and InstallOnAir's extensions beat us, and we say so. For one link that keeps working across many builds, a channel is the better tool. More on free hosts in free InstallOnAir alternatives and Loadly alternative.

A short checklist for a link that lasts

  1. Check the profile expiry of the .ipa before you share it. If it ends in weeks, renew it first.
  2. Make sure the profile lists every tester device, or plan a new build when testers join.
  3. Hand out a channel link, not a build link, when the address should outlive the build.
  4. Keep the power to take a build down: upload signed in, and use pause, stop dates or retire.
  5. Write release notes, so a tester who opens the link months later knows which build they have.

Common questions

Is there an IPA link that never expires?

Some hosts keep the link up with no end date. The build inside still stops installing when its provisioning profile or certificate ends, usually within a year.

How long do AppForShare links last?

3 days without an account, 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.

What is the best long lived link for testers?

A channel link that always opens the newest build, with rollback if a build is bad. It keeps working across builds instead of keeping one old build alive.

Keep reading

App Distribution Platform · · 5 min read

AppForShare File Size and Upload Limits

AppForShare limits the size of each build you upload by plan: 50 MB without an account, 150 MB on the Free plan, 2 GB on Pro and 4 GB on Team. Accounts also have a storage total, and every plan...