8

Is it possible to make an iOS application for enterprise distribution that updates itself transparently? Saying 'updates' I mean completely updating its logic.

A possible usage of this approach is a self-service kiosk (iPad) that is maintained remotelly.

It's not possible to update application binaries directly, but I see some possibilities:

  1. Application that have a single UIWebView and the logic is implemented in HTML5. But we can't use most of hardware specific features that can be used in native applications.
  2. Some multi-platform framework (possibly HTML5-based) that allows to use native application features and that is compiled or interpreted dynamically.
  3. Jailbreak?

What are really working approaches of these?

alexey
  • 8,360
  • 14
  • 70
  • 102
  • 1
    Various device manager platforms can 'force' a user to update an app, with it happening automagically in the background (often without even informing the user), but I don't think they can launch the app after the update which is something I think you want. – RonLugge Aug 20 '12 at 17:14

2 Answers2

15

Consider getting a mobile device management service. Those are pricey.

OR:

First, enable over-the-air distribution. It will take $300/year enterprise agreement with Apple. Set up a website with the app's IPA archive and descriptive PLIST.

Then code a call-home HTTP request on app startup. You may pull/parse the same PLIST that describes the latest version; it has a bundle version in it. Compare that to the version of the currently running bundle.

When a new version is detected, the app shuts down, opens the browser on the download page. In a softer manner, just notifies the user that an upgrade is available.

I've never tried linking directly to the app's download package, but give it a try. In a perfect world, Safari would open up and ask "Do you want do download MyApp?" right away. In a not so perfect world, the user would have to click a link and then agree to download.

Kaushil Ruparelia
  • 1,179
  • 2
  • 9
  • 26
Seva Alekseyev
  • 59,826
  • 25
  • 160
  • 281
  • 1
    I think he's looking for an approach that updates without requiring user input. Something that just 'happens' without a sales associate (or whoever) walking up to prompt through the updates. – RonLugge Aug 20 '12 at 17:13
  • 2
    A single "Yes" tap isn't that much of a burden. :) – Seva Alekseyev Aug 20 '12 at 17:49
  • 1
    @RonLugge, yes, it's important. No user input should be required at all. Imagine a self-service kiosk that shows an update alert to a new user. – alexey Aug 20 '12 at 19:25
  • 2
    Well, then consider getting a [mobile device management service](http://www.apple.com/ipad/business/integration/mdm/). Those are pricey. – Seva Alekseyev Aug 20 '12 at 20:46
  • @SevaAlekseyev, thanks. It seems like what I was looking for. – alexey Aug 21 '12 at 06:25
  • I'll move it into the answer. – Seva Alekseyev Aug 21 '12 at 12:48
  • @SevaAlekseyev MDM's don't avoid the need for user interaction. The'll automatically update, but they won't auto-launch the app. (To the best of my knowledge) – RonLugge Aug 21 '12 at 19:40
0

I think what you are looking for these days is the "Apple Deployment Program".

You volume purchase iPads which get sent to people, but that you can manage remotely - which also means management including remote updates of applications.

The only thing I'm not sure of is if you can launch an app remotely, so that you could update and re-launch an application.

Here's a guide to enrolling devices for remote management:

https://www.apple.com/business/docs/DEP_Guide.pdf

An old but good summary of the program:

http://www.speirs.org/blog/2014/2/27/understanding-apples-new-deployment-programs

Also watch the WWDC video on Managing Apple Devices for the Enterprise:

https://developer.apple.com/videos/wwdc/2015/?id=301

Kendall Helmstetter Gelner
  • 74,769
  • 26
  • 128
  • 150