HTML build as an iOS webapp?
Mar 07 2019 03:38 PM
We've picked up a client who's wanting a game producing for iPad, that will play offline, but they're not wanting to publish through the app store. I have very limited knowledge of Apple distribution but as far as I understand it, if we build in Corona and compile as a native iOS app, to not publish through the app store means needing an enterprise license to distribute ad-hoc, and this will only allow 100 installs...?
Now some time ago, probably a good 6 years now, I remember building a 'webapp'. Basically a web page that incorporated a few meta tags that tells iOS Safari to offer a download option. Downloading saves the page and assets locally and drops a shortcut on the home screen, which launches the local copy in full screen.
Assuming this is still a thing, I'm thinking then that to get around the licensing thing, we could compile to HTML build, hack the meta tags into the resulting page, and iPad would let iPad users save a local copy to launch full screen like any other app...
Firstly then, does anybody know if this is still a thing, and if Corona HTML builds do indeed work properly this way?
Secondly, does anybody know how this affects file access? Corona has the shared folders for creating cache files etc in, which we'd like to still use for saving scores. Not sure how a webapp download would affect this though?
And thirdly, would the Corona networking functions still work as a webapp? Although the game is to be played offline, we'd like to periodically check for a connection and synchronise those scores when one is available.
Apple's Volume Purchase Program may be of help to you and your client (https://vpp.itunes.apple.com/us/store). You can have a quick read of https://stackoverflow.com/questions/11301361/ios-app-deployment-without-appstore as well.
Now, concerning creating an app for iPad and trying to completely circumvent Apple's distribution networks (app store or otherwise) is something that I wouldn't even try. Sure, creating an HTML5 app that can be accessed via an iPad works as it isn't technically an iPad app anymore.
Apple is a litigious bunch and for the foreseeable future they are the lords of their platform. If your customer is planning on selling their app to normal players, then they'll have a hard time convincing customers to buy an app (or IAPs) through some tricky means outside of the app store. I'm guessing that your client doesn't want to publish through the app store due to Apple's cut? I'd tell them to just accept it and move on. I'm not aware of any proper game that has been released outside of the app store for iOS.
Their circumvention of the app store is actually logical though. This game isn't for the general public, it's a marketing gimmick that'll be loaded onto specific tablets, which is why the offline play is also important. Some of these tablets will be taken to events and mounted at exhibition stands, and others will be set up at customer venues, etc. In a nutshell the game will be played specifically by the clients prospective customers and designed to be a bit of a data collection tool - a fun way to get contact info (GDPR opted in if course) from people who are already interested in the companies products, and to further educate those people about said products. It's just not the kind of game you'd release to the wild.
Ah, well if you (or your client) own all the tablets that the game will be installed on, then you should have no issues. If you'll require 100 installs or less, then you can just create an ad hoc distribution profile and use it to distribute the app to the predetermined tablets.
Check out https://help.apple.com/xcode/mac/current/#/dev31de635e5 and https://docs.coronalabs.com/guide/distribution/iOSBuild/index.html
If those 100 installs are enough and you know the devices that the game will be installed on, then you'll have a really easy time.
Do you think building native and finding a way around the distribution limits is the way to go, or would a webapp be viable?
If you don't foresee any issues, performance or otherwise, with using a webapp as you say, then go for it.
Creating multiple ad hoc provisioning profiles isn't ideal, sure, but it isn't hard or time consuming either. The time consuming part will be having to input all those devices IDs that can run the specific build to those profiles.
There is a feature in the Apple developer portal for selling apps to specific businesses. I've never explored this, so I have no idea what's involved, but here is a screenshot of the section of the developer portal in question:
Screen Shot 2019-03-08 at 11.52.33 AM.png 151.81KB 0 downloads
Oh, that does look interesting Rob, thanks!
I did a bit of Googling to try and find what that might be, and came across this page: https://developer.apple.com/business/distribute/ which I'm guessing is related. Still not entirely sure what the correct path is, but from this page and the links XeduR provided above, it is starting to look like Apple has a suitable distribution method hidden away somewhere, even if the webapp approach proves unsuccessful.
You'd think this would be easier than it is. With Android you just need to compile against a self-signed keyfile and pass the resulting build to whoever needs it. Sure they'll be prompted about the security of installing something outside of the app store, but they'll still be allowed to. The Apple ecosystem seems unnecessarily complex.
Or just publish it to the App Store and then you can install it on anything. It's not like you have to promote it to the general public. I'll bet there are literally tens of thousands of apps on there right now that NOBODY except the developer and his mom have ever seen.
And there are tons of apps there right now that are USELESS without an accompanying account, and you can't even make an account in the app. So you never have to allow the general public to be able to use the app at all.
For example, search for SAP Concur on the app store -- it says right in the description it's only for existing Concur users.
So just make an app, publish it, and don't worry about how to do something weird.
- J. A. Whye likes this