Can an Iphone be "spoofed" to mis identify itself?

I bought a used iPhone a while back… it says its an iPhone7 (and yes, the settings screen says the same thing)…

BUT when I query the screen size… it reports the size of an iPhone5!

320x568 where an iPhone7 is 375x667

I didn’t discover this until I went to run an app on it, and noticed it didn’t quite fit the same as it did in the iPhone7 simulator

FYI… I have iOS13.5 on it… and the iPhone5 maxs out at 10.4 and the 5s at 12.2

how could this be?

I am well aware of what the Asset Catalog is… Problem is “launch images” were deprecated somewhere around iOS11. If those were still required, it would take 26 images and even then I don’t think it covers all the current device resolutions

  • 480x320 is iPhone4… which is no longer supported (since iOS9.3)
  • 960x640 is the @2x version and matches no other device
  • 1136x640 is the @2x version for an iPhone5

These do no match ANY of the “x” versions

Even “Xojo for iOS” has moved past the use of launch “images” and Apple deprecated them in iOS11 (two versions ago)

and is replaced by a “launchscreen.storyboard”… which my app DOE have

also deleteing the asset catalog is NOT an option, as that is where Swift stores icons, images and other graphics

Deprecated in iOS11 and totally removed in iOS13

Tell you what Dave. I don’t know you at all but you come across extremely aggressively and it’s more than clear why you were banned from the official forums. I don’t develop for iOS but vaguely remembered this issue when I read your post.

I’m out.

Ok… I’m at wits end here… Launch IMAGES are not the solution as they were removed in iOS13 (deprecated in iOS11). I have a LaunchScreen, but that doesn’t seem to help.
I have also tried using the new SwiftUI model, with the same results.

Does anyone else here have a real iPhone7 and Xcode? If so, could you create a simple app containing the following, and tell me what is printed in the console log?

print("Native \(UIScreen.main.nativeBounds.size)")
print("Main \(UIScreen.main.bounds.size)")

the EXPECTED results are

Native (750.0, 1334.0)
Main (667.0, 375.0)

what I get (on a real device)

Native (750.0, 1334.0)
Main (320.0, 568.0)

and this seems to be no matter what project format or options I use

help me understand what you’ve found so far

you cannot put a launch image in the built app and have it load ?
iOS 13 wont use that image at all ?

launch images were deprecated in iOS11 and removed in iOS13 (as in there is no longer a place to put the image). The simulator works “fine”, I only have one “real” device, so I don’t know what happens on others. I have tried this as a “normal” Swift app, a Swift UI app, in both Mojave (Xcode 11.3.1) and Cat (Xcode 11.5)

While Xcode does have 26 slots to fill in Launch Images, they are designated for iOS5 , 6, 7, 8, 11 and 12

(Note I did just notice it says 7+ and 12+, so perhaps I’ll try)… but Apples latest docs say to NOT use them, and use LaunchStoryboard instead (which as mentioned, I already have)

I was hoping someone had an iPhone7 and could tell me what THEIRS said

ah right not in the project itself but would it be possible to use some other means to put one in the built app ?

I just dont have a 7

Just as a hail mary… I’m going to write an Xojo app to create the 26 images
put them in a test project, remove the launchscreen.storyboard and see what happens…
I’m expecting to to be a waste of time, but at least I can say for certain it doesn’t work.

and if it DOES… it still leaves me in a non-future proofed situation

Ok… built and installed a ton of launchimages… but the app ignores them… if I attempt to remove the Launch SCREEN it complains… and the SCREEN overides the IMAGES… this is getting more and more frustrating

so
very
weird

I dont suppose you can say “link against iOS 13 but deploy to iOS 11” and that changes the behaviour at all ?

Nope… .tried that…
I have found articles that say the view size isn’t finalized until certain events … but I have viewed the size in each event and it stays the same WRONG value :frowning:

just so strange that it works right on the simulator, but not the device…
might have to co-opt the wifes iPhone6s and see what it does…