Tag: Android

Distribute Internal/Beta Mobile Apps

If you have apps do not want to publish to general public, e.g. internal or beta apps, keep reading.

For iOS apps, for far the best solution is still TestFlight, the best advantage is no need to collect end users UUID, like the adHoc way distribution. The Beta TestFlight also has public link feature.

For Android apps, google Playstore alpha/beta release is OK, but you need to collect tester’s google id, refresh time always has delay.

For small distribution, DeployGate Free plan provides 20 devices, with auto-update and public url features, can be a good choice.

If distribution larger than 20, if you already use bitrise.io as CI, currently their Ship(beta) is fairly easy to use, just ensure you have the Deploy to bitrise step at version 1.9.x+.

Also, since by default, bitrise keep both unsigned and signed apk as deploy artifacts, the ship(beta) just simply use the first one as distribution target, it would be a good idea just set the signed apk to deploy.

Screen Shot 2020-04-01 at 10.44.12 AM.png

You will get a nice public page for this signed APK, most of time.

Screen Shot 2020-04-01 at 11.22.49 AM.png

Since ship is still in beta. Sometimes you might get a heroku error. 😦

Screen Shot 2020-04-01 at 10.53.52 AM.png

My Mobile Map app dev replay

I built my iCrimeWatcher iOS app last year, based on core-data sync with back-end API. Later on, in December 2012, I decided to move on to Android market. My original plan was to get this app clone quickly done, so I picked Titanium. Things went pretty well, at first, at least during the development period, until finally I’ve reached distribution phase, something ugly drove me nuts.

The biggest shock is that Google Map Android App API V2 was released during my development time, and the old V1 discontinued right away. The end result is my app doesn’t work, kind of, at least not in distribution mode, old Titanium SDK still works OK in developer/debug mode.

Obviously Titanium SDK was catching up with the latest Google API V2, which is common for all the cross-platform solutions. My plan was postponed, nothing to do but wait.

Another ugly part is that V2 API only runs on physical device, I was forced to buy a Nexus 7 to be able to continue.

Two months later, this issue finally got fixed by Titanium team. I downloaded the V2 compatible Titanium SDK immediately to try out. Map displays perfectly in my app, except, the click event on pin popup randomly kill the app. Searched around, people are having the same issue, Titanium team has no solution/fix yet.

Time to move on, I retired Titanium, switched to native java Android app build. Not that hard to follow. Only after 3 weeks my java based CrimeMap Android app is published on Google Play Store, development time is almost same as Titanium, but no issue at all in distribution phase. The only tricky part is to get the right sha for distribution key, but the google doc has very details instruction on this. It’s much easier to follow, considering back to in Titanium mode, that key file in fact was in different place.

Research shows that BB doesn’t have Map engine. No bother. But I’m very surprised that Kindle Fire doesn’t have Google Map library embed either.