An iOS app internal size? - ios

I have searched for an iOS app internal size but find no exact answer.
I know an iOS app size in app-store could be 2GB. But my question is, is there any limitation on iOS internal app size.
For example, I could download video or images to iPhone through my app. And store it to Db or project's document directory.
So is it possible to use whole iPhone Memory or there is any limitation regarding each application?

There is no limit to how much additional content you can download (other than the storage space, of course). But there are guidelines for where and how to store the data, such as applying the "do not back up" attribute for files that must remain on the device and/or large recreate-able files and store non-recreate-able content in documents.

Related

IOS 64bit IPA file size compression

when deploying my IOS app to my mac the IPA file size is 87.3mb - After I publish the app to the iStore, Apple sends me a warning telling me that after they do some stuff it will be larger than 100mb and will only allow users to download it over wi-fi. It's quite imperative for me that my app stays below 100mb so that users can download it via mobile connection
Now - I've done some things that in my mind that should have decreased the app size but to no real avail
Compressed all the images I use in the app (combined size of all the images is less than 3MB - including splash screens and launcher icons)
Removed all unnecessary references to units (cleaned up the "using" sections)
Removed all design time components that can be instantiated in code
I'm not using livebindings
I am using Firedac with SQLite (the database is less than 1MB)
The APK file size is 43 mb which is well below the 50mb max google wants it
Any help or advice in getting the Apple IOS IPA file smaller would be great
edit
Upon further inspection as suggested by #Robotic Cat in the comments I find that the Unix Executable is the culprit... this is then definitely something to do with how delphi builds and links the package
end edit

Can we import big size file into my app?

Suppose my app size is 5MB and I am importing files from email or iTunes into my app.
Is there any specific memory size after which I can't import files to my app?
No, you are effectively only constrained by the storage capacity of the device. If it runs out, you won't be able to add any content to your app any more either.

If I am using 400 images within my iOS app how should I package them?

I am currently including roughly 400 images within my app. (Each entity has it's own image). Should I just include them in the App Bundle and leave it at that? Or, should I save them in binary form in Core Data? I'm asking because right now my App is currently above the 50mb for downloading from the App Store and I want it to be below that so my users don't have to be on wifi to get my app. Will my app size be smaller if I include them in binary form and not in the app bundle?

ios - Enterprise app with more than resource files of size 2GB

I'm working on an ipad application for enterprise distribution (that will be used only by my company people)
It has many video files, images, pdf's etc. after making the app, the size of the ipa is around 2.2 GB.
I'd like to know whether the app will run effectively on all iPad's or will it be trouble to do so?
Looking forward for some solution where it won't effect the performance of the app
If you stay under 2GB, it should definitely work for all devices, since the maximum limit of an app on the AppStore is 2GB.
Since you you distribute internally, it should theoretically also work with a larger file, like 2.2GB as you mention.
Most iPads should have FAT32 file system (or better) which sets the physical limit to 4GB. However I don't know if there exist iPads with a FAT16 file system, if it does, their limit is 2GB!
However, I would not recommend having such a large app bundle. Instead I would use a small app bundle and let the users download the content from inside the application from a company server.
If you need to have offline support, you could provide bundles or packages for the users to download into their apps, and save them there (preferably smaller than 2 gb each).
There are many good reasons for this:
What if you need to release an update for your app? Do your really want to force your users to download a new 2GB bundle just for an upgrade?
What if you want to add more content? Wouldn't it be better if the users could download this from inside the app?
You can let your users download the content in steps (an app bundle needs to be downloaded completely at once)
Let your users choose what content they need to download
Let your users use the app while content is being downloaded
and more...
I'd recommend pulling what you need from your servers when it's needed, (since I assume most of these files currently reside on your servers anyway), then discarding it when you don't need it.
I wouldn't include anything in the build of your app that can be included at a later time.

Why is my app 25% larger on the App Store?

The zip file I uploaded is 19.5MB, but on the App Store, Apple reports it as 24.5MB -- too large for over-the-air downloading. Is Apple adding a 5MB wrapper? Decompressing and recompressing less efficiently? Using 815K "megabytes"?
From Apple:
When your application is approved by
Apple to sell on the App Store, it is
encrypted for DRM purposes and
re-compressed. When the encryption is
added, the size of the compressed file
will increase. The exact size of the
increase will vary from app to app,
however, the size increase can be
large when the binary contains a lot
of contiguous zeros. We are unable to
guarantee the size of your file after
the encryption has been added.
Source (Expand section View the file sizes of a build (iOS, tvOS))
Download the app from the App Store with iTunes. You should end up with a .ipa in ~/Music/iTunes/Mobile Applications which is (hopefully) approximately what you get from the App Store. Check its size. You can additionally use something like unzip -Z myapp.zip to check the compressed size of individual files (an .ipa is just a .zip).
If, as in FreeAsInBeer's answer, your executable's compressed size is increasing loads, then it might be worthwhile trying to fix this (5 MB is a lot of code). Compiling with -Os might be helpful.
Also note that the .ipa will have some additional info, namely iTunesArtwork (from the up-to-512x512 App Store app icon) and iTunesMetadata.plist (which has stuff like the App Store category) and some FairPlay information. I'm not sure which of these are sent to the device.
And finally, Apple might be using M = 106 instead of 220 — 19.5×220 ≈ 20.4×106 . IIRC this was one of the changes in Snow Leopard.

Resources