[Solved] Is it possible to create App/Game made available only for pre-4.3 iOS?

From what I understand, I need to use Daily Build 767 or above to generate my game that is iPad 3 compatible, and that means the game will not run on pre-4.3 iOS. I’m almost ready to forget about pre-4.3 iOS, but then I thought I might as well try and see if I can release a version of my game that is made only for pre-4.3 iOS if it’s possible at all.

So… I’m wondering how I might go about specifying the maximum OS version using system.getInfo function. I looked at http://developer.anscamobile.com/reference/index/systemgetinfo and it appears that I could possibly use system.getInfo( “architectureInfo” ). I’m not entirely sure how to work this out properly, but here’s the direction I’m thinking of going:

[lua]local iOSVersion = system.getInfo( “architectureInfo” );

if string.match(iOSVersion, “iPhone4,3”) or string.match(iOSVersion, “iPod4,3”) then
– notify the user he/she needs to download the updated version
else
– launch the game
end[/lua]

I just wrote this off the top of my head and I haven’t really investigated the string.match function properly, so my syntax may very well be totally off. Also, I’m not entirely sure what architectureInfo would return from iOS 4.3 – but I sure would like to know.

If some kind soul on this forum can tell me if this isn’t really going to work, I’d appreciate hearing about it (so that I can truly move on). Also, if the problem is only with the syntax/parameter, and otherwise, it would work, I’d be so grateful to learn what syntax/parameter to use.

Naomi (in the middle of sorting through whole loads of changes associated with making my game to be iPad3 ready) [import]uid: 67217 topic_id: 23450 reply_id: 323450[/import]

try the older build which supported ARMv6. I just tried and I could build for the iPhone3, not the 3GS, the iPhone3 which was stuck at iOS 4.2.1 [import]uid: 3826 topic_id: 23450 reply_id: 94004[/import]

Is this going to be a paid or free app?

The iPhone 3GS can run iOS4.3, but the iPhone3 can not. Will your code be able to handle this case?

Even if your code works, you might have trouble getting Apple to accept it. [import]uid: 67839 topic_id: 23450 reply_id: 94009[/import]

Here’s Google Authenticator’s details

>>>>>
To use Google Authenticator, you need to enable 2-step verification on your Google Account.

Requires iOS 3.1.3 or later.
>>>>

so I am not sure how Apple would not accept 4.2 or 4.3 [import]uid: 3826 topic_id: 23450 reply_id: 94010[/import]

Thank you, Jayant and Elbowroomapps. That’s a good one. I looked up Wiki to confirm (http://en.wikipedia.org/wiki/List_of_iOS_devices#Models) and yes, it looks like 3GS and above can upgrade their device to iOS 5.1, so the users with 3GS and above can play the version built for iOS 4.3 and above. But I have a feeling that people (if a lot of people are like me) wouldn’t really want to bother with updating their iOS unless it’s absolutely necessary – so 3GS and iPad1 holders may not have upgraded their iOS to 4.3+. But I guess “architectureInfo” doesn’t return iOS version, does it – thank you for pointing it out. Deep sigh…

By the way, my game is free with IAP to unlock premium levels plus powerups made available as consumable IAP items.

About Apple accepting it – I wonder if they would deny pre-iOS4.3 version if I have iPad3-ready version submitted at the same time and set the release date to a future time that enable simultaneous launch? Dunno.

If there is a way to detect the iOS version of the device, it would make a world of difference for me. But maybe I am not a typical iPhone/iPodTouch/iPad users. Do most of the people have no qualms about updating their iOS?

Naomi

Edit: Jayant, I just saw your second reply post. Thank you. [import]uid: 67217 topic_id: 23450 reply_id: 94012[/import]

Edit: I don’t know why it is happening now (when it didn’t last night), but I get the warning " Your application built but failed to pass Apple’s validation tests" upon Corona completing the build process. Yikes. I can still intall it to iPad1 with iOS 4.2.1, but I have a feeling it won’t pass the Apple submission process… And… when I comment out the MinimumOSVersion from the build.settings, it builds without an error, but it won’t install on iPad1 with iOS 4.2.1. I suppose I truly need to move on.


I found out last night (after updating my Mac to Lion, uninstalling Xcode 4.2.1 and installing Xcode 4.3.1) that using Daily Build 767, I can deploy app/game to iPad 1 (iOS 4.2.1). It might’ve been my serendipidy that I forgot to comment out the MinimumOSVersion=“3.1.3” from my build.settings.

That said, my game will NOT install on iPod 2G (and presumably NOT on iPhone 3G) with iOS 4.2.1.

So… knowing iPad1 running iOS 4.2.1 can load my game, I no longer have regrets about moving on, and I’m going to forget about iPhone 3G & iPod 2G.

That said, if I wanted to deploy for iPhone G3 and iPod 2G using Daily Build 704A, I believe the code below would probably do the job (except that I’ve never used string.match function before, and I have not tested this, so I could be making some syntax error). And since my game runs decently on iPhone 1G with iOS 3.1.3, it can be included too – OMG, the power of Box2D and Corona SDK is simply astounding.

[lua]local thisDevice = system.getInfo( “architectureInfo” );

if string.match(thisDevice, “iPhone1,2”) or string.match(thisDevice, “iPod2,1”) then
– launch the game
else
– notify the user to fetch another version
end[/lua]

Thank you Asnca for the super quick turn around for deploying 704A and 767.

Also note, my game has no display issue on iPad3. Dynamic image resolution works perfectly fine without doing anything (except for setting config.lua properly and including @4x images). Everything appears to be scaling perfectly fine, including the wrapper class I got from code exchange, ui.lua version 2.4 from code exchange, retina text function I got from Jon Beebes’ blog some very long time ago (like the first month I started using Corona SDK), and all 4x spritesheets I exported from SWF files using Spriteloq (after a bit of tweak – Don, the creator of Spriteloq, will be updating the Spriteloq very soon with the fixes for the issues that were identified during this process). Cheers for wrapper class, ui class, retina text function, and Spriteloq!

Naomi [import]uid: 67217 topic_id: 23450 reply_id: 94516[/import]

The solution for the original question I sought is system.getInfo( “platformVersion” ). I came to it in this thread:

http://developer.anscamobile.com/forum/2012/03/19/specifying-device-compatibility#comment-94815

The sample is found in CoronaSDK > SampleCode > Hardware > DeviceInfo

Cheers,
Naomi [import]uid: 67217 topic_id: 23450 reply_id: 94836[/import]

OMG. I downloaded the latest 704 (that came after the 704A) just to check what’s up with it. I reverted back the Facebook implementation to the one I had when I was using 706, and… the device build generated using 704 supports 3.1.3 and above, installs on G2, G3, iPad1 and iPad3 (retina) with perfect retina display. My system is now Lion with Xcode 4.3.1. Xcode 4.2.1 was completely removed from the system before I installed 4.3.1.

Please let me know if I’m wrong, but it looks like I can submit my game using 704, supporting all device that can run pre-4.3 as well as iPad2 retina display. Amazing.

Way to go, Ansca Team!

Naomi [import]uid: 67217 topic_id: 23450 reply_id: 94940[/import]

hello @Naomi does iphone
since :
ARMv7 = iPhone 3GS/4, iPod 3G, iPad
ARMv6 = iPhone 2G/3G, iPod 1G/2G

does daily build 704 supports iphone 2g and 3g or not ??

if not how can i build app to run on ios 3.1.3 and above and works on iphone 2g and 3 g and 4g ??
please write me down details if no
thanks in advance

[import]uid: 74537 topic_id: 23450 reply_id: 100826[/import]

I’m not a hardware person and things like ARMv7 or ARMv6 mean very little to me. (Honestly, I’m not technically inclined to begin with. So unless I have a real need to know what ARMv7 or ARMv6 mean, I won’t even be interested in figuring it out.)

That said, the info I find on Wiki tells me which device can run what iOS version:

http://en.wikipedia.org/wiki/List_of_iOS_devices#Models

Maybe you will find the answer to your question there too.

Good luck.

Naomi

Edit: BTW, when I build my game using 704B, it does support iOS v3.1.3 and runs on an ancient iPod Touch that has iOS v3.1.3. [import]uid: 67217 topic_id: 23450 reply_id: 100837[/import]