One of our old project is now updated to XCode 7 and iOS9 SDK. Some of the images in the project is missing #3x versions and since we have a critical bug we need to submit it soon. We were testing our AdHoc build by
"Exporting one app for all compatible devices" - It is working fine.
What I want to know is, will App Slicing create problem if I dont have #3x images? Is there a way to turn it off?
Meanwhile I am trying hard to get all the 3x images
Okay, This is what happened,
I submitted the App without some of the 3x images.
App got approved.
Released in production, no issues so far related to images.
But one thing I noticed was that the slicing didnt happen. The Universal App size was 65MB and now also for every device it is showing 65MB in the AppStore, so i am confused whether the slicing happened or not.
Related
This question already has answers here:
App size double on archiving iphone
(3 answers)
Closed 5 years ago.
After archiving the build, the build size is almost doubled that of the build generated by dragging and dropping .app to iTunes. Why the build size is increased while archiving. Appreciate the suggestions.TY
The archive includes your debugging symbols .dsym file. Also see this duplicate post and answer.
In addition: assets are the issue in our case. You can in most cases remove meta data from your assets, it's a few kb per assets but with big quantities it adds up. Make sure to save assets for web, photoshop does this better than e.g Sketch, and there are tools like ImageOptim.
I have had that very same question. To be honest I am not sure. It might have something to do with the version for each device or the assets. Do not worry about the size. Once the app gets put onto the App Store the file size will change. One of my apps was 45mb on my simulator and once it was released onto the App Store the file size went down to 21mb. I honestly would not worry about file size unless you have a lot of pictures or videos.
The file size will decrease a lot once it is on the App Store. But if you are really concerned about the app size, there is a way to compress some of the code.
Click here for stackoverflow question that's shows how to do that
Congratulations on your app!
The archived version of the app includes all the assets and compiled code. If you are using Bitcode the size will be large as it will include all the slices of the app. However the downloaded size will differ from the archive size.
This question from Apple support pages also explains how you can determine more accurate file sizes for what the app will actually equal on the App Store.
https://developer.apple.com/library/content/qa/qa1795/_index.html
You might want to have a look into App Thinning to ensure you optimise the size of your app.
https://developer.apple.com/library/content/documentation/IDEs/Conceptual/AppDistributionGuide/AppThinning/AppThinning.html
or here
http://www.imore.com/app-thinning-ios-9-explained
Don't worry about the size. As soon as you upload it to the app store, bitcode will do it work which will make the app a lot smaller.
We released few versions of our app with universal support ( i.e. app is supported both on iPhone and iPad). Now with new version of our app (1.14) we want that this version should be available to iPad only. This means 1.14 should be available only on iPad and iPhone user may not able to install it. But when we change setting in Xcode from Universal to iPad only it gives error while uploading ipa to app store that if previous version of app supported iPhone then in updated version of app we cannot remove iPhone support. Now we are looking for solution to this problem. Please guide us what are way to over come this issue. Due to this issue we have to delay our app release so kindly give us possible suggestions as soon as possible.
There is no good way of doing what you want. Apple deliberately don't want you removing functionality for existing users.
Maybe the only way forward is to remove your current app from sale and submit a new, iPad-only version. You'll lose your reviews, sales rank, etc.
I've already spent two weeks trying to figure this out, and I'm unable to get it working... I made an HTML + Javascript game intended to work on both Android and iOS devices, so I used Ludei's CocoonJS (https://www.ludei.com/cocoonjs/) to compile the project and generate two projects: one for Android and one for iOS.
I've already successfully uploaded the Android project, which is available at the PlayStore and works well on different devices, but I'm heaving REALLY trouble with the iOS one. The problem is that, somehow, when I upload the project using XCode, it is understood as being a universal application, though it is only intended for iPhone devices. Due to this, Apple keeps rejecting it, as the game's screen doesn't adapts to the iPad screens.
As I don't want the game to fit iPads, the "only" thing I have to do is to upload the game specifying that it only is intended for iPhone devices... But such a trivial thing begins to seem impossible after days and days of fails.
What I've tried doing:
CocoonJS doesn't let you specify a device family, so it seems that the XCode project it compiles is intended to be universal. However, before uploading the app via XCode, you can change its "Build" attributes.
I've ensured one time and another that every option within the "Build" and the "Info" list points only at iPhone devices with iOS 7 (and not iPads nor universal).
I've tried creating multiple projects on iTunes Connect to ensure that the whole process doesn't get messed with a previous universal binary or some other bizarre things.
I'm only uploading screenshots for the 3.5 and 4 inches screens (iPhone 4 and iPhone 5).
What I'm ALWAYS getting:
An issue just when the project finsihes uploading saying that a localized screenshot is missing... I've searched over the net and it seems that this message may refer to various things, among them the fact that a supported device has no screenshot... Guess which one: iPad, I suppose!
The scariest part of everything is that when I open the details of the binary uploaded to iTunes Connect it shows a line:
Device family: iPhone / iPod, iPad
What the...!? What's the iPad doing here? I've tried almost everything and I'm not even to solve this... Maybe I'm missing something on the XCode "archiving" process, or I'm missing something on the iTunes project creation process... or maybe I'm missing something relating CocoonJS... I just don't know what else to do!
Anyone found something similar or can guess what can be happening?
Thanks in advance for your time and effort! :)
I faced the same issue recently while uploading a game created with CocoonJS. The problem is that CocoonJS uses the info.plist for most of the settings and configurations. So, while looking into the plist, I found the issue.
There's an entry in the plist called UIDeviceFamily which overwrites the device selection in build settings. It's an array containing two values, 1 and 2. 1 denotes iPhone and iPod while 2 denotes iPad. So just delete the second entry (2) from this array and you should be good to go. You can read more about it here.
I'm working on an iOS application which is developed for all devices (retina and non-retina)
The size of the app is too big now to have compromise for all devices. (Why should iphone 3gs suffer size where it does not get quality?)
Now, I would like to know if there is a way to optimize the size of game installed on the device.
Specifically, is there a way in itunes submission process where we can have additional downloadable content on the server and can download it based on the device ?
We can have assets broken based on the devices and still can save some size on each device.
There is no way to do this thru Apple. The app isn't even necessarily downloaded to a device initially, it might be downloaded to iTunes on a computer instead and synced to the device. Also the user might download it on an iPhone, sync it to iTunes, then sync it to an iPad, so the only time it would actually be downloaded is on the iPhone. So if it didn't include the iPad resources, then the iPad would have a problem running it in this scenario.
You could always have content that the app downloads from your server upon installation, which could reduce the size, but would delay the user starting to use the app upon first run. You could also include only retina assets and generate the non-retina assets upon first run by scaling the images to half size and saving them for subsequent use. This would also take a little bit of time, although probably less time than downloading assets.
You could always break the app into iPhone and iPad versions as well, which would reduce the app size. This would also give you the ability to set a different price point for the iPad version. This is very common and can definitely help reduce app size for all users. This would also be the recommended way of handling this. Note that this means you'll have two separate versions (different app IDs) on the store. Typically people append something like "HD" to the end of the iPad version when they do this.
I have an iOS app with a bunch of images in it. I used images inside of table view cells and as tab bar images. When testing for development and distribution everything worked just fine, and Apple approved it and put in on the app store. Problem is - I checked out my app from the app store and all of the images are gone! Both image sets are completely absent. Now, this only happens in the version of the app actually on the app store - the app in Xcode looks fine. Anyone have any idea what might be causing it?
Much appreciated!
p.s. if it helps to see the app yourself, let me know and I'll post a link.
Check your targets. In case if you use different target for building for appstore and for adhoc build you may included some of resources only into testing target.
Download your application from appstore, explore it using steps definehere, see if your images are in there, if not then re-upload binary with properly linked images, else, consider answer from #Nikita.