15MB upload limit for app IQ file?

I just made a 3 line change to an app, built it and tried to upload the IQ file, but I seem to have hit an upload limit!

I got this message:

The following errors were detected in your app file

  • The uploaded file is bigger than 15 MB. Your file size is : 15733151 bytes.

I guess this will be a problem as more and more devices are released, as each one increases the size of the IQ file. In order to get my upload to work I've temporarily removed the Vivoactive 4s. In fact I've only just started supporting more display sizes with this new app.

Is this limit likely to be increased? And in the near future?

Or should I just create 2 versions of my app, and split devices between the 2 different versions? (Which doesn't seem ideal as reviews and downloads will be split across the 2 of them …)

  • I believe it used to be 5MB so it's already increased quite a bit :) 

    but you're probably right it should be increased further, my 'happy new year' app on the venu is actually 5 meg for only the venu target... :)

  • That's impressive for just one target! Slight smile

    (Although I haven't added support for the Venu yet, so now I'm really worried!)

  • Peter's using the new animation stuff and that adds a whole lot to the prg..

  • Submit a CIQ bug report for this asking to increase the max size of the iq.

    You may also want to look at what's being included in a prg.  For example, if you have different custom fonts for the f5 and va3, are both sets of fonts included when you build for the f5?  If you use bitmaps, do you include 1 for each possible color where you can change that to use a custom font for the bitmaps and use dc.setColor()  and not have 15 copies of a bitmap? 

    The size of the .prg can lead to other issues.  On devices, there's a maximum space allowed for all .prg file (you can see this in GCM).  while a device might have 32 CIQ "slots", if the prg's are large, you might not be able to actually have that many CIQ apps due to the space.  And with the space, if there's not room for a second copy of a prg when updating, the user won't be able to update without uninstalling something first.

    You don't run into this when sideloading (there's no check on the max), but with debug builds, they are much larger than non-debug (store) builds, and will take up more space, and possibly get you to the point where you can't update an app from the store.

  • I'll make a bug report, although with just me hitting the limit it's unlikely to be high priority Slight smile

    I just have different fonts for the different display sizes, but the code uses the same Rez id names for the replacements, so if any of them were doubled up through mis-naming then it would be easily noticeable when viewing them on the watch because the graphical size would be off.

    I do seem to get 2 versions being built for (nearly) all the devices, even 3 versions for VA3 - I guess because I'm supporting both 3.0.x and 3.1.x. I could drop the 3.0.x, but it just seems nicer to support more versions as I don't know how much the firmware on real devices will be behind on average. But then I'll just be in trouble again when 3.2.x comes out ...

    My app runs in less than 124kB on all the devices, so I'm nowhere near the limit of 1MB or 2MB that some of the new devices seem to have. But I do have a lot of optional fonts. If I'd known there was a limit and that I was so close, then I could have reduced it a bit. But then, supporting more and more devices, and more and more CIQ versions, then the total IQ package is just going to keep increasing in size, even if each individual prg stays the same. Or if I try using the new animation stuff!

  • a temporary workaround can be to remove the debug.xml files from the iq package (do note that if you remove the debug file that your era reports will not look as nice since the store then doesn't know about your function names etc...)

  • Oh that could be cool! How can I actually open the iq package? Is it a zip file of some kind?

  • I do seem to get 2 versions being built for (nearly) all the devices, even 3 versions for VA3

    When an IQ is built for a device, say the va3, you will have a WW/ROW version and one for each APAC variant.  If you look at the manifest.xml in the .iq, you'll see the part number for each device, and then can check devices.xml to see what each is (the supported languages are the clue)

  • An iq file is just a zip file.  Open it with something that understand zips.