Can iPhone app crash because of file size?

Hi,

I like to know, for the iPhone, is there a limit for an application size? Initially, my app was around 181 Megs without compression. After building the app, I installed it on an iPhone and iPad. It crashed straight after the loading screen.

It’s only after I used compression and shrank it to 44 Megs that it’s able to run :stuck_out_tongue:

I thought my initial size was ok since Grand Theft Auto and Street Fighter 4 are around 200 Megs-ish. Is there something I should do in either Unity or Xcode so I can use a bigger size?

Thanks
-Hakimo

It depends on how much of your app is in memory… you can have a huge app, and it will be fine as long as you aren’t loading all your assets into the same scene. Everything else just sits out there in flash until you load it into a scene.

Basically the draw calls yea? I do have loads of asset but I don’t think it’s all loaded at the start of the app. Basically, they’re all functions that will only be call when needed :frowning:

No, not draw calls, the amount of assets in memory.

That doesn’t really mean anything. If you load a lot of assets, then they’re all in memory whether you’re using them or not.

–Eric

We have apps well over 200, and even one over 400. No issues.

As Eric said, you’re most likely loading too many at once :slight_smile:

Thanks,

I didn’t know that. What’s the best solution to solve this? I wasn’t even sure if I was loading everything at once and I didn’t know if it’s possible to load assets dynamically. In any case, I’ll give it a go.

Thanks again.
-Hakimo

Well, If you have too much loaded into memory at once, Streaming content is always something to look into. In our projects the music is always a memory hogger, so we decided to Stream it when needed instead of assigning it to AudioClip variables in the scene.

Also there are always ways to optimize: Compress textures, Use smaller compression of Wav sounds (11000 KHZ, 8-Bit compression instead of 44100 KHZ 16 bit). Hope this gets you into the right way of thinking :slight_smile:

Hi Toby,

Sorry I probably didn’t explain enough about my project. As I mentioned earlier, the compressed application works, but the uncompressed one doesn’t. What I had to sacrifice was the quality of images. As for audio, I think mine is fine; I have compressed the audio that’s manageable and they’re in Mono instead of Stereo.

I’m still trying to push for the high quality ones. Just read about Resources.Load so I’ll see if it does what I want.

Yep streaming content is good. Unfortunately, I’m using Unity iPhone Basic so I’m missing out on stuff like Streaming Asset Bundles :frowning:

Thanks btw,
-Hakimo

There is no such thing as compressed application.
you zip it up to send it to apple, right, but it will not run out of the zip on the device cause that would be horribly slow.
Also the app size has nothing to do with RAM usage which is responsible for crashes.

the crash as indicated comes from the fact that you have too much RAM usage in parallel. you have a border of 30mb if you want to run on ipod touch 2nd gen and lower on iOS3, and even less if it is meant to run on iOS4.
should you load more you will near granted see memory warnings and then will be killed by the iphone os.

you can use the memory allocation instrument to see how much ram you are using at a time.

Hi Dreamora,

Fair enough, I got the definition wrong. When I said compressed application, I meant that when I’m building the app in Unity iPhone, I basically checked the compressed assets thingy that basically compressed the textures and audio etc. In my haste, I just thought I’d call it a compressed app :stuck_out_tongue:

As said in the previous replies before yours, yes, I do know it’s a RAM issue and currently looking into it :slight_smile: Thanks very much.

*Thanks again Eric5h5. Finally got the gist of it.

-Hakimo