i am using Unity 5.3.1f1 and make game for iOS, after my game is done i build it to XCode. The binary archived from XCode, and generate ~65MB IPA file. Terrifically, after i upload that IPA file to the app store, it becomes larger ~150MB.
I have read this thread:
http://answers.unity3d.com/questions/1149641/very-large-ios-build-size-unity-5.html. But in those case, their IPA file itself is large, and i already disable bitcode
Do you guys have any suggestion?
By assuming you're ok with ~65MB file, i can say there is nothing you can do about it. App store shows install size of your game which is a lot larger than size of compressed IPA file.
For instance, while my game's IPA file size is ~95MB its size on app store appears as ~300MB. In case it helps, please see my earlier question.
Related
I have a small project written in React Native CLI, After Archive it and export the .ipa file I got a large size it's 172MB!!
I have enabled Bitcode in release mode,
And disable all Flipper stuff but the size still the same (large)
How can I reduce it?
Note
I don't have any assets like fonts big images, just a splash screen image (4kb)
IPAs are ZIP files. In your IPA file, replace .ipa to .zip, expand it, right click on the .app file and click Show Contents. There you can see what parts of the app are what's causing it to be so big.
If I had to guess, though, the binary is really big because it's bundling the whole react native runtime. There's no a lot you can do about this.
If you're building with a Debug configuration, changing it to Release will strip debug symbols and make your binary smaller.
I have a simple iOS App with 4 Viewcontrollers and few ressources. The Resources include a video (30mb) and images (10mb). I was expecting an app size of max. 50MB but when I archive it goes up to 107MB.
I have read that when I use Swift libraries or pods Xcode includes Swift core into my app. My question is now what should I do? 107MB is unacceptable. Even 50MB is really big but I was fine with. Is there a way to reduce the size and keep the Swift pods included? At this stage I can't even upload it.
UPDATE
Thanks to #GoRoS I have inspected and found out that libswiftCore.dylib 43MB & libswiftFoundation.dylib 5MB are the files that really increase the size. Still its strange. I have the Swift libraries at two different locations in my IPA.
IPA
iphoneos (contains Swift libs)
payload
Frameworks (contains obj-c libs and Swift)
SaifDeen, I would recommend to inspect your IPA file by yourself and you will discover why your app is that big ;)
For that just remember that an IPA is a simple ZIP file:
unzip -lv /path/to/your/app.ipa
Check this reference
Update:
Disabling bitcode will decrease your IPA size. However, as far as I know, even though you have bitcode enabled once your app is in the store Apple makes some optimizations to the app before the user downloads it. The result of that should be a smaller file size.
I was having a similar issue with my app and the only way that I was able to see the final size of the app is not when archiving, is once the app is on Apple servers. The best way to test this is archiving and upload it to iTunes Connect and then installing it with TestFlight.
In my case, at first was around 90 MB and then when installing with TestFlight was only 39 MB.
Hope this helps
bitcode and swift libraries DID NOT have anything to do with my issue.... i basically simply clicked and dragged a folder into my xcode project, which automatically added everything in that folder as 'targets'.
However, these files did not come up when searching through my target dependencies within xcode.... but they DID INDEED show up when unzipping the .ipa as #GoRoS had suggested previously in this thread.
This was a dumb mistake that i probably should have caught sooner.... but that also means someone else will make the same mistake too : )
screen shots...
i clicked and dragged this folder (ios_alpha) from finder into xcode...
and then everything inside that folder was set as a target membership like this....
hope this helps someone!
glhf!
Previously I was using Xcode7.0.1 but now I am using Xcode7.2 , previously size of ipa file of my project was around 44mb. Now I have deleted 22mb of unused images from my project, Size of overall project is decreased by 22mb and then i generated ipa file its size increased instead of decreasing. Now its size is 53mb. Any ideas what could be the possible reason for this kind of peculiar behaviour?
I also followed similar discussion on GitHub but nothing get out of it.
For generating ipa file I followed following steps:
Xcode -> Product -> Archive
Try disabling the Bitcode feature of app. It is enabled by default.
For disabling this feature Use this link
After disabling it, make sure the app is working fine.. also make sure you clean your project before creating ipa file.
We are making a game for iOS (under unity 3d) and the IPA file size is around 90 MB. We submitted it for review and at the same time we pushed that same build to Test Flight for Internal Testers. Surprisingly the size on Test Flight is now 400 MB (uncompressed size).
We used test flight internal testing for previous versions of the game, but never got this much size.
Anybody having any clue as how the test flight is taking up the uncompressed file and showing that for the download (400 MB to download)?
Also after we set it for release, which size will the app be for people to download, 90 MB or 400 MB?
The best way to get an idea of the App Store size is to follow the analysis here:
http://forum.unity3d.com/threads/il2cpp-build-size-improvements.322079/
TL;DR
Due to compression of some parts of the binary, a rule of thumb formula for the app size is:
app_store_size = sizeof(.ipa/(zip with exec_binary removed)) + sizeof(codesegment(exec_binary)) + 0.2 * sizeof(datasegment(exec_binary))
This analysis only takes a look at the binary size, so you need to add the size of any assets as well.
Ok I'm not sure how you send your app to TestFlight, but if you are using App Loader or XCode, you could uncheck the field "include bitcode", I'm not sure if it's set by default.
This is how it looks in XCode (while exporting archive):
https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/Art/6_ios_review_dist_profile_2x.png
The thing is, iTunes will create different binaries for your application each optimized for different versions of devices (like different versions of iPad, iPhone etc.). That is why your application on TestFlight has such huge difference in size in comparison to your ipa file.
Check the contents of the IPA. It probably contains debug symbols in the DSYM folder. As il2cpp output is very big, so will be the symbol files. I suppose they are included in the Testflight upload because these are meant for QA purposes, where debug symbols are very helpful.
This is my first time putting an app on the itunes app store. I've tested on a device and created the binary, but when I use Application Loader to upload the binary I see the binary is lighted-out and un-clickable. Also, when I bring up the binary .app file in Xcode it has a big circle with a slash through it. What does this mean, and how do I fix it?
Thanks a bunch!
The crossed out icon means "this file cannot be executed". This is normal, since the app and your Mac have different architectures.