I would like to deploy an Android application internally in an organization.
For the moment while developing the application, I have used e-mail to spread my application. Then the user has to install the Android SDK, install a driver for his phone and finally run the adb install MyApplication.apk to install the application.
Is there any better ways to deploy Android applications internally? Is it even possible to manage updates?
I read on a forum that applications can be deployed on a webserver. Then the user only has to download the application for installing. But when I tried to simply upload an .apk file to my webserver and visit the URL using the browser on my phone I got this message:
<Uknown>
mydomain.com
Cannot download. The content is not supported on the phone.
So how can I fix this? Is there any kind of MIME-type I have to set on the webserver? Doing the same thing as described in the link above on http://slideme.org/sam2.apk works fine, and the installation starts.
The only thing I can find about this on Android Developers Publishing Your Applications
is:
You can publish your application using a hosted service such as Android Market or through a web server.
Try application/vnd.android.package-archive as the MIME type.
Related
I'm a web developer and just new to the mobile world, I wonder how I can allow another people to test my app on their device remotely?
For example, on the web app, I will create a staging environment (stg.example.com) and then they can easily test it from everywhere. But I can't found the same way for mobile app (react native). I can install the app to my phone through a capable, but I can't do it on my customer phone :sad:
Do I must publish it to App Store/CH Play first and then they can install and test it? It seems a bad idea :sad:
I really appreciate any advice,
Thanks!
1-You can use Expo CLI where you can send the QR Code to your other team members and they can easily check your app with EXPO APP by using the QR Code.
2-If you are using react-native CLI then there is only one way to send your android app to your other team members or friends and that is to generate a signed apk. Read here how to generate signed apk : https://reactnative.dev/docs/signed-apk-android
Once you get the apk you can send it to anyone through google drive or any other free cloud storage or through Bluetooth.
For IOS it's quite difficult you need to have an Apple account to generate ipa (iOS App Store Package). See this it will help you How to share a compiled iOS app ipa with your users for testing
Upload it to playstore/ app store is not a bad idea, e.g. you can do a closed beta test there. Another option is when your customer activate unknown sources on there device they can install the apps directly.
We have a website hosted as an Azure web app service. The system also has an Android client. The system is a LOB system with known customers and (at the moment) we don't want to host the app in Google Play at the moment.
At the moment we share the Android apk through the website but that always requires a new build of the web even when only the android app has changed.
Problem with just republishing the app service are twofold:
The site is an Asp.net Core site with WebJobs. At the moment tooling doesn't support deploying WebJobs with Asp.net Core sites so with every build we have to reupload the WebJob through the Azure portal so we don't want to increase the amount of builds.
The apk needs to be added to the visual studio project and the removed after deployment so we don't add the apk to version control.
Provisioning a CDN service just for this apk file is overkill. Hosting it in Azure blob storage is an option but don't know how to manually update a row there.
Requirements are that the url the the apk file should be static, either so that the Azure resource would have a static url or that the web site could stream the file from some Azure storage.
Are there any better ways to host an app in Azure?
If someones interested I ended up creating a Storage account for blobs and it turned out I could upload and edit the blobs directly from Visual Studio. The apk then got the url
https://storageaccount.blob.core.windows.net/mycontainer/myapp.apk
I have created an app with ArcGIS Web App Builder and when hosted on a local server it works fine, but when I build the app using Apache Cordova and load the APK file onto the phone and install it. That app will not load on the phone and stay on the splash screen. Any ideas?
This may be an obvious question, but is the original Arcgis app based on esri web-server applications or do you have your own esri server? In previous conversations with esri, they have indicated that apps must run through (or are ultimately controlled by) their servers and cannot be stand-alone without a server account. Someone on stackoverflow can add more insight, but one test of this is to see if the whole web package will run without a web connection. Usually, you will find that basemaps,and other embedded files interact with the esri mothership.
I want to deploy an Android app in a similar fashion as the Wireless, Over-The-Air method that exists for iOS devices. That is, setup a web page and the user clicks a link from his device that includes the manifest (xml) file, containing information on how to download the app. This works well on iOS devices, and I thought Android may have something similar.
How do I go about this?
Thank you for any help.
Please the comments above. Have the correct MIME settings, link to the apk, and make sure unknown sources is checked on the device to allow non-market apps.
Since you seem to imply an app market / store is not involved in the iOS case, it seems you might be talking about an offline-cacheable "web app" rather than a native iOS application.
The android equivalent is: on devices where the offline web app capability exists, just visit the same web page (referencing an html5 manifest with appropriate mime type, etc) you are using for iOS. Perhaps you will ultimately end up with platform-specific refinements, but the basic idea is portable.
Or perhaps you just mean that a desktop/laptop need not be used to open obtain the app. On Android, that has been the case since day 1 - the primary market client is on the device, with over-the-air install. You can send an android device to the market with a market:// url. The ability to trigger an install from a web browser running on something other than the device is a more recent and still secondary capability on android.
Finally, android does offer the ability to side load native applications, something that has no iOS equivalent outside of jailbreaking or having a developer account. Most of the responses seem to concentrate on this, but it's not clear if that is what you are actually asking for.
Is it possible to download the android .apk application from the android market to our pc?
Probably this will help you.
http://www.howtogeek.com/howto/21862/how-to-enable-the-android-market-in-the-google-android-emulator/
http://techdroid.kbeanie.com/2009/11/android-market-on-emulator.html
Once you get access to android market from emulator you can probably get .apk from ddms
Yes , You'll need the latest version of Chrome with SSL error notifications disabled, then you supply your device ID, email address and password (all stored locally on your computer to grab the Android Market cookie).
To anyone still need it , you can get it here : http://apps.evozi.com/apk-downloader/
You can download all your installed apps. from mobile to SD Card. You just need to install an android application appInstaller...You just need to backup all your applications. This software generates apk files and stores in the SD card..And then you can store it in your pc..
you can install the android-sdk and use the adb command to pull the apk from your device.
The command is: adb pull
This is an update to the post by Mur Votema.
The Android 2.2 with Market is available here
http://techdroid.kbeanie.com/search/label/Market%20on%20Emulator
Now you can do this by using this extension for Google Chrome: APK Downloader
If you're in control of the network that you are using for the download, you could relatively easily grab it from the TCP stream:
Internet --- your_router --- wifi_AP --- your_Android_device
In the above diagram, the Android device connects to your WiFi access point, which is connected to your router, which connects to the Internet (and therefore the Android market). By running some capture tool (e.g. WireShark or tcpdump, even a capturing reverse proxy like Fiddler) on the router, you will see all the traffic passing across it, and you could capture it.
Possible caveats:
you'll need to decrypt encrypted connections, if any (e.g. for HTTPS, dummy certificates can be substituted)
more importantly, check if the license conditions for Market and the app allow this; depending what you intend to do with the files afterwards, this could be seen as a step in reverse engineering
the device itself must be able to connect to Market (not sure about emulators etc.)