I am working of app support COSU app android. The app is working fine for me but I am not understand how user will update our app, because COSU app user can't access any other application even google play store. So now the question is that how user will update our application without google play access.
I have one solutin download app from our server, but in this case user will lose save data like the data we are storing in SharedPreference. Please guide me if you have any other solution for that. Thank in advence
According to Google's docs on COSU (Google Play app management), it is possible to "install, update, and uninstall apps using the Play EMM API". Under "Google-hosted private app management" it describes the ability to host private apps through Play that your users can install/update:
Simplifies the Google-hosted private app publishing and update
workflows available to all admins through managed Google Play, by
enabling admins to update Google-hosted private apps through the EMM console instead of through the Google Play console.
Enterprise admin can upload new versions of apps that are already published privately to the enterprise using the Google Play Developer Publishing API.
If you don't want to use Play for this functionality you can read the "Self-hosted private app management" section.
You can also look at "Managed Google Play" to publish private apps for your users: https://support.google.com/googleplay/work/topic/6145152
After you register for a Google Play Developer account and set up the correct administrator privileges to upload and publish the app to managed Google Play, you can use the Enterprise Mobility Management (EMM) console to distribute the app to users.
Going the EMM route will let you update apps with the same functionality as regular Google Play apps where updates don't cause users to lose data. Unfortunately Google's documentation isn't detailed or centralized for this feature. Going through Google will also require that all of your devices are signed in to Google account in order to install apps or receive updates that you deploy though the EMM console.
Another option is to use a mobile device management (MDM) solution. If you have Samsung devices you can look into Samsung Knox which has a much simpler method for distributing your app: https://www.samsungknox.com/en/article/manage-apps
Another MDM option for single use apps is Mason (https://bymason.com/). Mason lets you upload your app, select any or all of your devices, and then deploy your APK to your users. When updating your app, all you have to do is increment your app version and the update functionality will be the same as a regular Google Play update. Your users also don't have to be signed in to a Google account.
If this sounds useful to you feel free to reach out to me trevor # bymason.com
DISCLAIMER: I work at Mason
Related
I see that on PlayStore I can publish a private app to my customers if they has a OrganizationId.
I don't understand the role of "Play Custom App Publishing API","Android Management API
".
Is possible to develop a private enterprise store based on playstore ? I'm confused.. The world of private app for enterprise is soo few documented
There are 3 types of app distribution available using the Google APIs:
Public Google hosted apps - The app is available through the Play Store and not restricted to a specific enterprise. This type is supported by the Android Management API using an application policy.
Private Google hosted apps - The app is a private app (restricted to a single enterprise) but hosted by Google. This means your app will be uploaded privately to the Play Store and it will be available only to devices enrolled within your enterprise. This type is supported by the Android Management API using a managed iFrame for uploading APK files and an application policy to deploy the apps. Deployment is the same as with public apps where you use the package name of the app.
Private Self-Hosted apps - This type is fairly complex, but it does not require you to upload an APK to the Google Play store. Instead, you generate JSON meta data definitions of your APK and you only publish this meta data at Google. When you'd like to install an app, Google are actually using that meta-data to fetch APK files from your enterprise server.
Options 1 and 2 work for both work profile and device owner enrollments, while Option 3 works only for device owner enrollments. Furthermore, it seems it is only limited to the now closed EMM API.
The Play Custom App Publishing API is actually a way to manually create or update private APK uploads. So instead of using the Android Management API iFrame, you can use the publishing API to create your own in-house UI.
Depending on what you exactly mean, you may be able to build your own private store using the private apps functionality and the Play Custom App Publishing API to build your own UI for publishing apps. Be advised that there is a package name restriction imposed by the Play Store. There can be no 2 apps sharing the same package name uploaded to the Play Store. It does not matter if these are private apps, visible only for one enterprise. This rule applies globally for the whole Play Store.
Private Google hosted apps aren't restricted to a single enterprise. It can also be distributed to other organizations. Each company, or "enterprise", that allows employees to use their phones for work or gives devices to employees, manages those devices and decides which apps are available. If you don't want your app to be available to download from Play by consumer, but only by business that you've worked with, you might consider making your app "private" to just those companies that you work with. Each company will need to give you their "Organization ID" or "Enterprise ID" to make your app visible to that company.
Private self-hosted apps are actually called Externally hosted private apps. You can check this link for more information about externally hosted private apps.
For your use case, would it also work to use in-app purchases to enable app sales?
I have an Android app that I want to push to be available to download for users in our company.
But I don't want the app to be visible publically to all.
Does anyone have any suggestions on how I can achieve this?
As mentioned in Google G-Suite,
You can use the managed Google Play store to host Android apps
specifically for your organization. You can control who can download
an app. You can also benefit from security checks, such as user
authentication and malware detection. You publish private apps to the
Play store from the Google Admin console or the Google Play Console.
Go through this link and follow the steps :
Manage Google Play private apps
It has some FAQs. Please read this and check if it fulfills your requirements.
Working on a device-owner application (installed at provision time with NFC), so far I did not find any way to provision devices directly with a PlayStore-based-App, that is why I keep using a private distribution mode for my apk, directly downloaded from a private server...
In this context here is my question: is there a way to use GCM with an App that isn't distributed on the Google Play Store?
Developers will be able to sign-up for GCM for both Play and non-Play apps. However, GCM stats will be available for only published Google Play apps. So yes, I believe you can use GCM with a non-Play Store app.
In iOS, we have provisional profiles to setup device UDIDs. So, our app will install on devices only which UDIDs are added to provisional profile at development stage. We generally added only customer device. So only customer can install the app. The build will not install any other device.
Is there any feature like above in Android?
NOTE: I knew we have feature in Google Play. But, I need this feature while development.
You can filter which users (not devices) can install your app.
In order to do that, use Google Play Developer Console to publish beta application APK - it can be installed only once user joins specific Google+ community or Google group.
So you have to create such a group or community and make it private - this will allow you to filter out which users can join.
After those users join, you will send them test URL and app will be installed on their devices.
Have a look at this Google Play Help article for more details.
The Play Store's method of doing this is via the new beta-testing feature. You add your testers to a Google+ community, and they get access to your application via the Play Store.
If you don't want to use the Play Store, you can implement a restriction within the app itself to accomplish this. The Identifying App Installations Android Blog post has some great information on how to uniquely identify devices. You can use one of these methods to check the device's identifier against a list of "approved" devices in your Activity's onStart(), and simply call finish() if the user is not "approved."
I have built an application that we will be selling to customers through the Google Play store.
We also have individuals in house that will support outside customers, and also use it in house. They need to have the application running on their own device. If I distribute it to them via an .apk file, can they receive updates via Google Play? Or do they have to purchase it through Google Play to receive updates?
Secondary question: Is there a better solution to distributing to internal users?
As curious myself and not having official info on this, I just did a test:
On Google Play I have an App at version 1.3.2
I've installed via ADB the version 1.3.0 on my device.
Opened Google Play > My Apps.
The update to version 1.3.2 was available.
Did the update
All seems to work normally.
So my word on this is: Yes they will receive the update (the app has to have the same signature of course).
Maybe you might just have a look on term of services if this isn't breaking any rules.
On the second question, the "better" solution may wary based on the company infrastructure which we don't know.
If the version on Google Play is identical to the version you distributed, signed with the same signature, and it is available as a free app, then Google Play can be used to update the version distributed outside of Google Play.
I received the following in an email from a member of the Google Play Team:
"The side-loaded apps used by your internal users will not receive updates from Google Play. You will need to provide them with the new APK in order for them to access the new features/functionality. This is working as intended to ensure that only users who have purchased a paid app will receive notifications and updates."
So: Paid for apps cannot be updated via Google Play if they are "side-loaded" (installed outside of Google Play).