We recently posted a lectionary app built through Scriptoria to the Google Play Store:
This app can be downloaded and installed from the Play Store, but if that app is then shared with Xender with another device, the app installs fine, and when you open it, it shows the app splash screen, but then shows an error screen “Get this app from Play”, “To continue using Chadian Arabic Lectionary, get it on Google Play”, and there is a button “Get app”.
But we want to be able to share the app from phone to phone, even if the other phone doesn’t have an Internet connection.
Can someone please explain the problem, and (hopefully) propose a solution?
Thanks,
Jeff
It seems we had this problem before on an AlphaTiles app. The discussion included this information:
A couple years ago, we could create both local .apk files for sharing and then use the same .apk file to publish to the Play Store. Now, the Play Store only accepts a different file, an .aab file (Android App Bundle). This .aab file cannot be sideloaded. So even if we had created identical versions for your Google Drive project folder and for the Play Store upload, they would still have been different files. The .aab file allows Android to download smaller app install files, which are tailored to the particular device.
Is this the issue? If so, how can we post an app to the Play Store that can be downloaded and shared with others that don’t have Internet access?
Jeff
More news… I downloaded the apk file from the Product Files of the Scriptoria project. When that apk file is placed on a device that doesn’t have an Internet connection, it installs and opens just fine. So I assume we can pass this apk file using Xender, and then use that apk file to install a working version of the app. Would sharing that app (installed from an apk, rather than downloaded from the Play Store) using Xender result in a working app on the next device?
But the question remains, why does the app downloaded from the Play Store not transfer successfully to another device without connecting to the Play Store (which may not be possible)?
Jeff
When an app is publish to Google Play as an Android App Bundle (AAB), Google Play has a library of software and resources for all platforms. When you trying to install the app on your phone, Google Play will take the software and resources specific to your device and create an APK specific for your device. If you try to share that APK with someone else, it may not have the correct software and resources for the other phone.
In SAB on the Navigation > Navigation Drawer > Share App page, there is a setting for “Share link to app on website” which includes a URL to the Universal APK which would allow users to share with others.
Scriptoria has a service which enables this setting during a build and fills in this URL with a special URL on Scriptoria which will download the most recent successfully publish Universal APK.
You just need to add BUILD_SHARE_DOWNLOAD_APP_LINK = 1 to your publishing properties and rebuild/republish your app.
Chris
So I add this to the publishing properties, do a rebuild, and then if someone downloads the app from the Play Store, they will be able to share that app with others that don’t have an Internet connection? We CANNOT guarantee that this new device will have Internet access, so I want to make sure that the app downloaded has everything it needs to share with others. (I just want to make sure I get this right…)
I keep re-reading your post @ChrisHubbard, and it seems like you are only offering something that will allow you to share a download link to the Universal APK (so it has to be downloaded again), and not something that will allow you to download the Universal APK and then share it with others, meaning they don’t need to download anything.
Thanks for clearing this up for me,
Jeff
OK, so I think I might have figured out what is going on… When I download the app from the Play Store, and then try to share it, I notice that the ONLY option available when I use “Share App” from the menu is “Share link to app installer file”. So apparently it knows that it doesn’t have everything it needs to pass the app to other devices (i.e. the Universal APK). If I download the apk from Scriptoria and install from that, then when I use “Share App”, it gives me the Share link option, but it also gives me a “Share app installer file” option. When I use that option, I can pass the app on to a device that doesn’t have an Internet connection, and it installs and runs without a problem. (And that device as well can share with others that Universal APK, which will work fine for them.)
So the question is… Is there a way to force the Play Store to provide the Universal APK on installations from the Play Store, rather than this limited version which can’t be passed directly to other devices? The vast majority of app shares for this app will be phone to phone, but that occasional person who downloads it from the Play Store will now force EVERYONE he shares it with to connect on the Internet. So if we had some way to force the Play Store to share the Universal APK, that would be a very helpful option to have.
Now I’m reading Chris’ reply again (with my newfound knowledge…
). If I add this BUILD_SHARE_DOWNLOAD_APP_LINK = 1 publishing property, does it add a THIRD button on the Share App screen, “Share link to app on website”? If so, does that mean you can choose to:
- share link to the regular Play Store app (which downloads a limited version)
- share link to the Universal APK (which has to be downloaded)
- share the APK (but only if the Universal APK is installed on this device)
That’s kind of weird… If I download from the Play Store, I get a limited version, and I can send a link to others to get the Universal APK (which they can then easily share with others without Internet), but I can’t EVER easily share to others without Internet. Unless I uninstall and have the person I sent the Universal APK to send it back to me!
I’m just hoping that there is an option somewhere to disable the AAB downloading of limited APKs, so that Play Store downloads can always send the Universal APK.
Jeff
Sorry to continue on like this, but I’m still processing this… ChaptGPT (see chat below) says that AAB is mandatory on the Play Store. So it appears the best we can do is activate this option to share the Universal APK. Those who download the app from the Play Store will never be able to share to devices without an Internet connection, but they can point people to the Universal APK to download, and those NEXT generation of users should be able to share independently of the Internet.
I still have one question, though. Assume I installed from the Universal APK (downloaded from Scriptoria). Is it still “connected” to the Play Store, and would see if there are updates to the app? If so, and I tell it to do the update, do I get the crippled AAB version (which I can’t share with others who don’t have an Internet connection), or does it somehow know to download the Universal APK again? This is a very important question!
Jeff
Recommended Solution
Enable the Scriptoria build-time feature to generate a URL for the Universal APK and include it in your app’s share options:
-
Add this setting in your project’s publishing properties:
BUILD_SHARE_DOWNLOAD_APP_LINK = 1
-
Rebuild and republish the app via Scriptoria.
-
Now, when someone installs the app from the Play Store, the “Share app” screen will offer three options:
-
“Get it on Google Play” – shares the Play Store link
-
“Share link to Universal APK” – shares a web link to download the full Universal APK
-
“Share app installer file” – only appears if the Universal APK is installed
This doesn’t prevent the Play Store from installing device-optimized APKs, but gives users an explicit way to download and share the Universal APK, enabling offline distribution via Xender or similar.
Why you can’t force universal installs directly from Play
-
AAB is mandatory on Play. Google generates custom splits to optimize download/install size, not shareability.
-
There’s no configuration in Play to disable split APK delivery for everyone.
-
The only path to get a shareable Universal APK is to have Scriptoria generate it, download it, and then share that.
With the publishing property I specified, you will get another entry in the share page. When you click on the button, you could:
- share the link with someone by email, text, or WhatsApp and they would go to the page to download.
- open the link in a browser and you can download the Universal APK to keep on your phone to share with others.
Chris
Thanks Chris for that information. It’s good that a user that has the AAB version downloaded from the Play Store will be able to download the Universal APK locally, to be able to share with others. I assume that he/she could also install that APK on the local device, and then be able to share the APK directly from the app, right? Would the Universal APK be able to be installed on top of the AAB version, or would that need to be uninstalled first?
And I still would like to know - if a user installs the Universal APK, will it still be connected to the Play Store, and will Google Play show updates for the app? And if so, I’m guessing that if you told it to update, that it would revert to the AAB version? Again making the sharing with people without Internet more challenging…
Thanks for all your help!
Jeff
A little more testing has revealed an additional unfortunate blockage for our users. I installed the app from the Play Store on a new phone (Android 14). The share options are “Share link to app on Google Play” and “Share link to app installer file”. I chose the latter option and shared it with myself, downloaded the installer file (APK), and then tried to install that app over the top of the current app, but got :
App not installed as package conflicts with an existing package
So you actually have to uninstall the Play Store version before you can install the APK (which is the version that can be shared phone to phone)? That’s just one more step required, which will cause many people in Chad to fail at sharing the app with others.
If I uninstall the Play Store app, and then install the APK file, then the app works fine, and there is a now a share option of “Share app installer file” (in addition to the two other sharing options). But if I look at the app info, it no longer says “Downloaded from Google Play” but “Downloaded from My Files”, so I’m assuming that if there is an update to the app on the Play Store, it won’t automatically be found. You’ll have to go through this whole fiasco again. It just gets worser and worser… 
This AAB requirement is really a very unfortunate decision by Google for the developing world. It’s basically forcing you to choose between downloading from the Play Store (requiring Internet) OR sharing the file from phone to phone (which prevents the notification of updates). You can’t really have a combination of those without great pain. If they still allowed full APK files to be posted on the Play Store, you could have the best of both worlds. And from what I’ve seen, AAB files aren’t that much smaller than APK files anyway… I think this must all be about control, having the knowledge of who has what apps installed.
Please let me know if I’m missing something here.
Jeff