If app runs fine in the simulator, does it mean it will certainly be running fine on a real device?

The question I want to ask is simple. If I have app that runs fine in Corona simulator for both iPhones and iPads, then it should run fine for both devices after it is published on the app store?

The reason I am asking is that my friend said his app only runs on an iPad but not in an iPhone. But when he coded it, he tried in the Corona Simulator and it runs fine for both devices. The app has been published to the app store already by his colleague. He believed there was nothing wrong in publishing process (meaning he thinks they published both devices).

I quickly looked at his build.settings file, which doesn’t seem to have a restriction for the devices. So what could be wrong here?

No. The simulator simply provides different screen sizes and resolution simulations. It is literally that: A simulation. It is not emulating  anything about the device. If you want that, you need to load your binary into Apple’s iOS device simulator. That’s still not as good as running it on a real device, but it is a lot closer.

There are cloud services out there which let you test your code on a real device and send you reports back, though I’m not sure what they’re called, I’m afraid. If you try any it would be great to have a list here, I think.

Thanks for the fast reply. Since the app runs fine on the iPad and there is no restrictions in the setting file, so to me, it doesn’t seem to be the code that causes the problem. I reckon it is most likely to be in the actually publishing process (to actually put the app on the app store). But my friend insists that they have a professional team to do. So could this be caused by the actually .lua codes?

I would also look at getting the logs from the device - plug it into a Mac and look in XCode when it runs - to see what goes wrong on the device itself.

The iPad is a very high powered device relative some older iPhones, so if this is an old iPhone versus an iPad, there may be an issue with the size of textures, or some other resource limit.

Ex: The iPad supports 8192x8192 (or twice that for latest iPads) textures, but older iPhones only supported 4096x4096 or smaller.

It is possible during the build process to select “iPhone Only” or “iPad Only” in which the executable that’s produced will only run on the defined device. iPads should still be able to run iPhone Only apps in phone emulation mode. but iPad only apps will not run on iPhones.

But in a more generic answer to only testing in the simulator… One of the most common problems is having a file name case sensitivity problem. You won’t spot that until you test on a device.

Rob

the current issue is now it is only running on the iPad but not on the iPhone. I haven’t really looked my friend’s codes yet. But I suspected he meant running in the ‘debug mode’, in which you need to add the actual device from the apple developper side, but he hasn’t done yet. I will update when I meet him in a few days time

No. The simulator simply provides different screen sizes and resolution simulations. It is literally that: A simulation. It is not emulating  anything about the device. If you want that, you need to load your binary into Apple’s iOS device simulator. That’s still not as good as running it on a real device, but it is a lot closer.

There are cloud services out there which let you test your code on a real device and send you reports back, though I’m not sure what they’re called, I’m afraid. If you try any it would be great to have a list here, I think.

Thanks for the fast reply. Since the app runs fine on the iPad and there is no restrictions in the setting file, so to me, it doesn’t seem to be the code that causes the problem. I reckon it is most likely to be in the actually publishing process (to actually put the app on the app store). But my friend insists that they have a professional team to do. So could this be caused by the actually .lua codes?

I would also look at getting the logs from the device - plug it into a Mac and look in XCode when it runs - to see what goes wrong on the device itself.

The iPad is a very high powered device relative some older iPhones, so if this is an old iPhone versus an iPad, there may be an issue with the size of textures, or some other resource limit.

Ex: The iPad supports 8192x8192 (or twice that for latest iPads) textures, but older iPhones only supported 4096x4096 or smaller.

It is possible during the build process to select “iPhone Only” or “iPad Only” in which the executable that’s produced will only run on the defined device. iPads should still be able to run iPhone Only apps in phone emulation mode. but iPad only apps will not run on iPhones.

But in a more generic answer to only testing in the simulator… One of the most common problems is having a file name case sensitivity problem. You won’t spot that until you test on a device.

Rob

the current issue is now it is only running on the iPad but not on the iPhone. I haven’t really looked my friend’s codes yet. But I suspected he meant running in the ‘debug mode’, in which you need to add the actual device from the apple developper side, but he hasn’t done yet. I will update when I meet him in a few days time