1

The link to Apple Developer Guide is:

https://developer.apple.com/library/prerelease/content/documentation/LanguagesUtilities/Conceptual/iTunesConnect_Guide/Chapters/SubmittingTheApp.html

On that link, they have the section "Submitting the App for App Review", which has this message:

"Abnormally large build files are usually the result of storing data, such as images, inside the compiled binary itself instead of as a resource inside your app bundle. If you are compiling an image or large dataset into your binary, it would be best to split this data out into a resource that is loaded dynamically by your app. "

The total size of PNG images used by my game is about 130 Mb. When I compile and load the game onto my iPad for testing, I can see that the total size of the game is about 190 MB as shown on the iPad.

I already put the PNG images inside the folder "resource" in Xamarin studio, and my code builds those images into texture atlases before I compile and build my game.

So, per Apple's suggestion "it would be best to split this data out into a resource that is loaded dynamically by your app" in the message above, my questions are as follow:

(1) Can I further reduce the size of my game by "putting the images into another resource that can be dynamically loaded by my game" ? (Or will "App Thinning" help in this case ?)

(2) If the answer to question (1) above is "YES", would you please show me how to do that ? Or could you please send me a link to Xamarin website that shows us how to do that ?

Thank you very much.

Job_September_2020
  • 858
  • 2
  • 10
  • 25

1 Answers1

2

I am not entirely sure as the docs aren't so clear. There are a lot of ways to reduce the size, though. For instance, you may use On Demand Resources, also a technique you can use for Apple devices.

I included some links to some other topics that may be in your interest. For example: do you really need to build for all Apple platforms (arv6,7,x86_x64...)? That and more can be found in the links below.

It partly boils down to your use cases and user base and so on, but you can use App Thinning with Xamarin

Reducing Executable Size

Use the linker to remove unnecessary code

Apple's On Demand Resources

Multiple architectures?

Dan Beaulieu
  • 19,406
  • 19
  • 101
  • 135
jbehrens94
  • 2,356
  • 6
  • 31
  • 59
  • Thank you very much, jbehrens94. Let me check out the links you posted... :-) – Job_September_2020 Aug 03 '16 at 15:16
  • Yes, I will accept your question. Can you help me with 1 more minor question ? When I follow your above link "Use the linker to remove unnecessary code" on Xamarin website, I can't quite edit my linker behavior. This is what happens: First, I open my existing game project in Xamarin, which is fine. Next, when I select the button "Project" on the top menu bar, I can see that the button "Project Options" at the end of that menu is "gray out", which means that users can't click on it. How can I fix this ? (I am using Xamarin Studio Community on Mac, which is the FREE version). Thanks. – Job_September_2020 Aug 06 '16 at 10:16
  • I'm not quite sure to be honest, so I don't know for sure what it means. :( – jbehrens94 Aug 06 '16 at 10:27
  • OK. I will create a separate and new question for that new topic about the button "Project Options" being gray out.. :-) BTW, I think that your answers are great and they answer my questions very well. So, I officially accept your answers now. Thank you very much for your help. :-) – Job_September_2020 Aug 06 '16 at 10:28
  • Thank you for your compliments! Nice of you, keep asking good questions and you'll receive great answers. :) – jbehrens94 Aug 06 '16 at 10:53
  • The first link is out of date, it is this now: https://learn.microsoft.com/en-us/xamarin/cross-platform/deploy-test/memory-perf-best-practices#reduce-the-size-of-the-application – garie Nov 04 '18 at 14:11