Alright, I am excited, I just purchased the iOS Pro license - but I would like some advice on how to fully utilize this bad boy.
I have started to use the Profiler to help me find memory peaks in my game, and I have to, that it helped me find 2-3 bugs that I would have never of found without it.
Isn’t the file/app size suppose to be smaller? Before I bought the iOS Pro, my app file size was roughly ~40 MB, now it says, its ~80 MB…? (Looking at the .app file in the Finder, not when its uploaded to Apple) I have set all the game objects in the scene that don’t move to be Static. I also have checked Static Batching in the Player settings… am I missing something to reduce file size? What are your texture settings?
What ‘exactly’ is arm6 and arm7? Is one for backwards compatibility? Which one should I use from this point on?
I appreciate any feed back, thanks
UPDATE -
Ok, I did some research on the file size (which I should have done before, stupid me) and found out about ‘Stripping Level’. This helped a lot! I was able to bring the .app file I see in the Finder down to ~40 MB. But the type of game I have, I really want to bring it down to ~30, maybe even lower. Any suggestions on what I could have overlooked?
ARMV6 is the cpu architecture used in iphone 2g and 3g
ARMV7 is the cpu architecture used in 3GS+ generations.
For most new games, also in the light of iOS 4.3 and 5 not supporting pre 3GS hardware anyway (and ARMV6 being below 10% of the install base, not supporting game center on iPhone 3G, etc) you could go with ARMV7 only.
another reason for doing so is having ARMV6 + ARMV7 doubles the binary size, without stripping your application will be at least 32mb in size for example (16 for each of the cpu architectures)
But if I select ‘arm7 (iPad only)’ as the Target Platform, will this only run on the iPad as it states? Or the iPhones/iPods using the arm7 as well now?
I wanted to ask the same question, but after testing, arm7 game’s works on my 3gs and ipad4, size changed from 38 to 30 megabytes (not zipped).
But interesting thing is when i set arm7 (which is OpenGLES 2.0 only?) and change in AppController.mm to #define USE_OPENGLES20_IF_AVAILABLE 0
and it still works. Or i’m just mistaken because of thinking, based on:
if in Universal Target Platform is stated armv6 + armv7 (OpenGL ES1.1 + 2.0) so armv6 = 1.1 only and armv7 = 2.0 only
One more thing:
If i set target to armv7 only and target ios version to 3.2, will 3g devices users (armv6) will still be able to update my game? According to wikipedia Soft 4.2.1 is final release supported on second generation devices (iPhone 3G and iPod Touch 2G).
Another Update:
Xcode is giving me warning: warning: iPhone apps should include an armv6 architecture (current ARCHS = “armv7”).
The same when i choose armv6 only (then it want’s armv7 too).
It means that our only choice is Armv6 + 7?
Graphics really has nothing to do with it, all that does is choose a different code path in xcode. You can even edit the code yourself to set up opengl in appcontroller.mm.
Tried to upload armv7 only with application loader and got following error:
iPhone/iPod Touch: application executable is missing a required architecture. At least one of the following architecture(s) must be present: armv6
So here is question to dreamora: How we can go with ARMV7 only? Thx
hmm… this doesn’t seem right. If I want to try to get my app ~20MB, I either have to select armv6 or armv7 (each is 16MB alone, and both will make my app greater than 30MB), and I can’t select one or the other because Apple will reject your app if its not compatible with phones less than 3GS. Am I reading all the above correctly?
This is not entirely correct. You can submit armv6-only app to the iOS AppStore and it will be accepted. When submitting armv7-only app you need to add special key to the Info.plist:
Basically there isn’t a point to having mixed arm6/7 unless you want to squeeze a few more fps out. Not sure it matters for most games. But it should be a bit faster on the arm7 devices.
So if you’re targetting 3g, chances are your game is lightweight anyway, so just stick with 6, and it will work on all.
But if you’re targetting 3gs onwards there is -no- point at all in including arm6.
My game runs out of memory on devices with 256MB when I build for ARM7. I have submitted to the store before using only ARM6, but for some reason today I am getting this error.