I want to find out what is the common method of targeting different iOS devices. Specifically regarding textures, and can textures be filtered so 4x is sent to one device, and 2x is sent to others.
For example, we have been making a game mainly designed for iPad new (retina), but also looking to release for other iPads, pods and phones(4/4S). Texture swapping in the game for different resolutions is working fine.
My question is : when I submit the app to apple, does it send the same package to all devices? Does the device load all the texture sizes? Is there an in-house way of targeting the iPad (3rd generation) to only receive the 4x textures, and likewise all the other supported devices to only receive the 2x textures? Or do we have to submit different packages for different devices?
This may sound noobish, and indeed this will be our first app store submission, I was hoping someone who has done the process and understands it would be able just to give me some advice, or a link to some reading material, would be very much appreciated.
Edit : I’ve just added this as a question on Unity Answers, as there is no information being offered here 
http://answers.unity3d.com/questions/280987/how-does-apple-send-my-app-to-different-ios-device.html
``You have to do this yourself. Might want to have a look at Angry Bots demo “Quality Mangager”. There, they set the qualitysettings for different devices and (dis)enable surtain shaders. But with the same technique, you can load HD or LD Textures.
Keep in mind, that everything in your scene WILL be loaded. If you only want to have certain things for a device, you need to load that at runtime with Ressources.Load(). It does not help however, if you have some gameobject in your scene, which has a shader with a connected Texture. That on would be loaded anyways. This connection should be null in the beginning. You do your devicetest and based on the result load the texture.
Hope this helps. From Angrybots:
#if UNITY_IPHONE
// some special quality settings cases for various platforms
if (iPhoneSettings.generation == iPhoneGeneration.iPad1Gen) {
currentQuality = Quality.Low;
Debug.Log("AngryBots: quality set to 'Low' (iPad1 class iOS)");
}
else if (iPhoneSettings.generation == iPhoneGeneration.iPad2Gen) {
currentQuality = Quality.High;
Debug.Log("AngryBots: quality set to 'High' (iPad2 class iOS)");
}
else if (iPhoneSettings.generation == iPhoneGeneration.iPhone3GS || iPhoneSettings.generation == iPhoneGeneration.iPodTouch3Gen) {
currentQuality = Quality.Low;
Debug.Log("AngryBots: quality set to 'Low' (iPhone 3GS class iOS)");
}
else {
currentQuality = Quality.Medium;
Debug.Log("AngryBots: quality set to 'Medium' (iPhone4 class iOS)");
}
quality = currentQuality;
#else
Thankyou for your detailed and informative reply, I’m still looking into the process, but don’t have access to the apple dev docs until thurs, dev license is colleague’s, my job is to find this stuff out. All searches led to ‘how to become apple dev, prov profiles, etc’ but all that is done, inc gamecenter integration. I shall post back my findings and a better way to phrase my question, but your answer has clarified some points (i thought there would have to be a separate app for each device), textures and screen positions are managed by resolution detection in a method similar to your post, it was a matter of making the packages smaller if the device only downloaded the textures it needed for the device when downloading the app. My personal thought was the same as yours, one package downloaded by all, but only load the textures required after device/screen-res check. It’s all part of the mystery of going from development license to distribution license and submitting and distributing for the first time. Also, what’s the general opinion of the service : http://unity3d.com/union/developers