I have for the first time went to build my production IOS app with trigger.io and was a little shocked at the file size so when I went to look at the IPA I noticed that in the root of the IPA it had the splash screen images and in the src directory it had the same images.
This accounted for about 10 extra megs, when you start having all the different resolutions for IPAD Iphone etc these files cane be large.
So it looks like the IPA creation process grabs the files from the src directory and places them in the root of the IPA but does not remove them from the src location and now I have double the images I need and double the size at that.
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 am adding folders and images in Assets.xcassets of Xcode.
Where is the folder or image of Assets.xcassets stored on the iPhone when testing the actual machine with Xcode?
Also, I would like to know how to check whether the folder and image of Assets.xcaassets is installed in iPhone storage place right after launching the application.
Ultimately I would like to install the image in my AWS on the iPhone of the user of the application at the first launch of the application.
I would like to reduce the file size of the application.
Adding images to the iPhone of the user of the application is not a malicious purpose.
And I do not know the best way.
The images are compiled by Xcode and a file called Assets.car (CoreUI archive) is created.
The file is then bundled in the ipa file created when you export the app.
If you uncompress the ipa (it's a simple zip file) you can see the car file inside the application packet.
I am developing one app with ionic angular4 and while I am deploying my app my app size is very big.
My app is very simple informative app and there is only app icon and splash screen are there in my bundle still its goes up to 16-17 MB in iOS iPA while in android same thing will goes up to 3MB only so is there any way to decrese my iPA file size ?
Note : I am using production mode while deploying my app.
While I reverse engineering on iPA file I found below interesting things which may help me out from this issue.
www -> 10.9 (almost 65% of iPA size)
www/build -> 10.0 MB
www/build/vendor.js -> 4.3 MB
www/build/vendor.js.map -> 5 MB
May be we can workout on vendor.js will help us to reduce my App size. But not sure how can we reduce this file size ?
Thanks in Advance!
Almost I lose hope that I can resolve this issue and compromised with IPA file size.
Meanwhile, I developed 4-5 ionic based app with the same issue and in my recent app deploy I fond my IPA file with almost half of the old app size.
So I compare steps of old and new app deployment and I summarised below the solution is best practice.
Build your app in prod mode by using --prod.
Build Command : ionic cordova build ios --prod
Compress all your images with the best resolution and without compromising your image quality. (Use some tool to compress and decrease your image size e.g. ImageCompress).
Remove unwanted files which are no more useful in prod ready code like Sample or dummy JSON, String, PDF, Images.
Following the above steps, My Old APP IPA file size decreased by 60% and now app IPA file size is only 6 MB earlier it was 16 MB.
This will help to reduce app build size.
I was developed an application using titanium-Appcelerator. I was stuck with
Missing recommended icon file - The bundle does not contain an app icon for iPhone / iPod Touch of exactly '120x120' pixels, in .png format'
Missing recommended icon file - The bundle does not contain an app icon for iPhone / iPod Touch of exactly '76x76' pixels, in .png format
Missing recommended icon file - The bundle does not contain an app icon for iPhone / iPod Touch of exactly '152x152' pixels, in .png format
error while submitting titanium application to AppStore. I developed this application in "CLASSIC'' framework in Titanium. I had referred to many docs and forums regards this issue.
I had tried by setting appicon names as " appicon-60#2x.png,appicon-76#2x.png,appicon-76.png, etc as per guidelines in Project-Name/Resources/iPhone even it was showing the above issue repeatedly while submitting.
What is the list of .png filenames you have in Resources/iphone?
The files you need for the sizes you list are:
appicon-60#2x.png (120x120)
appicon-76.png (76x76)
appicon-76#2x.png (152x152)
You could use the TiCons CLI to generate all the icons using a single 2048x2048 file.
I had this exact issue even though I had all the files correctly named and in the right directory.
I was able to validate my app successfully after cleaning the project in Appcelerator Studio (Project -> Clean), and re-running the distribution build. Subsequent builds would not pass validation (same error) unless I cleaned again in between builds.
(I am using Titanium 7.1.0.GA, Appcelerator Studio 5.0.0.201712081732, and Xcode 9.3)
I keep receiving the following message from Apple when submitting my app for approval:
"iPhone 5 Optimization Requirement - Your binary is not optimized for iPhone 5. New iPhone apps and app updates submitted targeting iOS 6 and above must support the 4-inch display on iPhone 5 and must include a launch image with the -568h size modifier immediately following the portion of the launch image's filename. Launch images must be PNG files and located at the top-level of your bundle, or provided within each .lproj folder if you localize your launch images."
I'm using AIR SDK 3.9 (and I checked to make sure by tracing NativeApplication.nativeApplication.runtimeVersion).
I have a Default-568h#2x.png image in the src folder, and I checked the Project/Properties/ActionScript Build Settings/Package content (I'm using Flash Builder 4.6). It is definitely checked off to be included in the build. In "Export Release Build", I don't see it in the Package Contents there, but I don't see any of the other Default png's either, so I don't think that's the problem.
Does anyone know what I'm doing wrong?
Be sure that the launch images also located in the folder "bin-release-temp"... I have to put them manually into that folder...
The launch images cannot be referenced anywhere in the project. You cannot embed them. You cannot use them. If you do, they are not packaged as launch images, but as images used at runtime. I was having the same problem when I was referencing the images as a SplashScreenImage source. It's an unfortunate way for it to be handled, basically requiring you to include the same image twice, but it is what it is.
This link might help. It describes what and where to keep default images in air application for iPhone deployment.
http://rohitdhore1612.wordpress.com/2013/05/22/air-invalid-binary-iphone-5-optimization-requirement-your-binary-is-not-optimized-for-iphone-5/