AppForShare

How to upload an APK and share it without the Play Store

· 8 min read

To share an Android app without the Play Store, you need three things. First, an installable APK file (not an AAB). Second, somewhere to put that file so it has a link. Third, testers who allow their phone to install apps from outside Google Play.

The quickest version: build a signed release APK, upload it to a file sharing or test distribution service, and send the link. With appforshare.io you can drop an .apk on the homepage with no account. You get an install link and a QR code back, and testers open the link on their phone and tap Install.

The rest of this guide covers each step in detail. It includes the build commands for the common frameworks and the problems that usually trip people up.

Can you share an app without any server at all?

One of the most common searches on this topic asks how to share an app link "without uploading to Play Store or any server." It helps to be clear about what is possible.

A download link always points to a file stored somewhere. If you want a link, the APK has to live on some machine that other people can reach. That could be your own website, a cloud drive or a distribution service, but it is always a server of some kind.

If you truly want no server at all, you can still send the file itself rather than a link:

  • Attach the APK to an email or a chat message.
  • Copy it to the phone over USB.
  • Use Android's built in nearby sharing to send it phone to phone.

These work fine for one or two people. They get awkward when you have several testers, need to send a new build every few days, or want people to install with one tap. That is where a link (and ideally a QR code) saves time.

Step 1: Build an installable APK

Google Play now expects Android App Bundles (.aab), so many projects are set up to produce those by default. An AAB cannot be installed directly on a phone. For sharing outside the store, you need an .apk.

You also want a release build that is signed with your own key. Debug builds do install, but they run slower, may include debug tools, and are signed with a debug key that differs between machines. If a teammate builds the next version on their laptop, testers may not be able to update over the old one.

Android Studio

  1. Open your project and go to the Build menu, then Generate Signed App Bundle or APK.
  2. Choose APK (not Android App Bundle) and click Next.
  3. Pick an existing keystore, or create a new one. Write down the keystore password, key alias and key password, and back up the keystore file somewhere safe. You need the same key for every future update.
  4. Choose the release build variant and click Create.
  5. When it finishes, Android Studio shows a link to the output folder. The file is usually app/release/app-release.apk or under app/build/outputs/apk/release/.

Gradle from the command line

If signing is already configured in your build.gradle file, run this from the project root:

./gradlew assembleRelease

On Windows, use gradlew assembleRelease. The APK ends up in app/build/outputs/apk/release/.

If you see a file named app-release-unsigned.apk, signing is not set up for the release build type. Either add a signing config or use the Android Studio wizard above.

Flutter

flutter build apk --release

The output is build/app/outputs/flutter-apk/app-release.apk. This is a single APK that works on most phones.

You can also run flutter build apk --split-per-abi to get smaller files, one per processor type. If you do, make sure each tester gets the right one. For a small group, the single universal APK is less hassle.

React Native

cd android
./gradlew assembleRelease

The APK lands in android/app/build/outputs/apk/release/. You need a release signing config in android/app/build.gradle first, the same as any native Android project.

Before you upload, check two things

  • Version code. Bump versionCode every time you share a new build. Android will not install an update with the same or a lower version code over an existing install.
  • Signing key. Use the same keystore for every build you send to the same testers. A different key means testers have to uninstall the old app first, which also wipes its data.

Step 2: Upload the APK and get a link

You have a few options for hosting the file. Each one suits a different situation.

Option Good for Things to watch
Email or chat attachment One or two people, one build Attachment size limits. Some apps block .apk files. No single link to reuse.
Cloud drive (shared file link) Occasional sharing with people you know Opening the link often shows a preview page instead of starting the download. Sharing settings must allow access.
Your own website Public apps you distribute yourself You handle hosting, the download page and updates.
Test distribution service Regular test builds for a team or client Check upload size limits, how long links stay live, and privacy options.

A distribution service is built for this exact job. Here is how it works on AppForShare:

  1. Go to appforshare.io and drop your .apk on the upload box, or click to choose the file.
  2. The service reads the app name, version and icon from the file. You do not need to type them in.
  3. You get an install link and a QR code.

Guest uploads with no account can be up to 50 MB, and the link stays live for 3 days. A free account raises that to 150 MB uploads and 7 day links. It also adds password protection and version history, so every upload of the same app lands in one project.

If your APK is large or your connection is unreliable, uploads resume after a dropped connection. For more detail on size, see file size and upload limits. If an upload fails, the guide to common .apk upload errors covers the usual causes.

Whatever service you use, compare it with the vendor's own pricing page before you commit. Check the maximum file size, how long a link stays active, and whether you can protect a link with a password. Plans and limits change, so look at the current page rather than relying on a review.

Step 3: Send the link and help testers install

Send the link by email, chat or whatever your team uses. If people are in the same room, show them the QR code and let them scan it with their camera.

On the tester's side, the steps on Android 8.0 and later are:

  1. Open the link on the phone, in Chrome or another browser.
  2. Enter the password if you set one.
  3. Tap Install. The APK downloads.
  4. The first time, Android says the browser is not allowed to install unknown apps. Tap Settings, turn on Allow from this source, then go back.
  5. Tap Install again, then Open.

Some testers will be nervous about that warning, and that is reasonable. Tell them where the link came from, and that Google Play Protect still scans apps installed this way. If you want something to send them, the guide on installing third party apps on Android walks through it, including older phones that use a single Unknown sources switch.

Common problems and quick fixes

"App not installed" when updating. Usually the new build is signed with a different key, or its version code is not higher than the installed one. Fix the build, or ask the tester to uninstall the old version first.

"There was a problem parsing the package." The download may be incomplete, or the app's minimum Android version may be higher than the phone's. Check minSdkVersion in your build file.

The link opens a preview instead of downloading. This happens with many cloud drives. Testers need to find the download option on the preview page, or you can switch to a service that gives a direct install page.

Nothing happens after the download. Ask the tester to open the Files app, go to Downloads, and tap the .apk there.

You sent an AAB by mistake. Phones cannot install .aab files. Rebuild as an APK using the steps above.

Making repeat builds easier

If you send builds every week, the manual steps add up. A few habits help:

  • Put your release signing config in Gradle once, so assembleRelease always produces a signed APK.
  • Bump the version code automatically in your build script or CI.
  • Keep links organized by app, so testers always know which one is current. On AppForShare, a free account groups every upload of the same app into one project, so testers can also step back to an earlier build if something breaks.
  • Automate the upload itself. The post on automating build uploads shows one way to do it.

Wrap up

Sharing an Android app outside the Play Store comes down to a short routine:

  1. Build a signed release APK.
  2. Bump the version code.
  3. Upload the file somewhere that gives you a link.
  4. Send that link with a one line note about allowing unknown apps.

Keep the same signing key for every build, and updates will install over the top without testers losing their data.

When you have an APK ready, you can upload it on the AppForShare homepage and get an install link and QR code.

Keep reading

· 9 min read

AppForShare.io vs Competitors - A Comparative Analysis

For small teams and startups, selecting a mobile app testing platform is a critical crossroad. This choice is more than a mere selection: it’s a strategic decision that directly impacts the...