templates icon indicating copy to clipboard operation
templates copied to clipboard

Fixed non notched window size on notched devices when sideloading an app

Open Luki120 opened this issue 1 year ago • 8 comments

What does this implement/fix? Explain your changes.

  • See title. This happened because the way the system detects the resolution of the iPhone changed starting from xcode 6/7 and iOS 9. Now a UILaunchStoryboardName key in the Info.plist is needed instead of a bunch of png files. Relevant sources:

    Source

    Source 2

Does this close any currently open issues?

Any relevant logs, error output, etc?

Any other comments?

  • Note: this leaves no way to provide a launch screen image since there's no Storyboard file. However, the previous way doesn't work either in modern iOS versions + it has this "bug" if you sideload the app, so it can be used as a workaround until there's actually a way to ship a launch screen image with Theos

Where has this been tested?

Operating System: Kubuntu 22.04.2 LTS x86_64

Platform: Linux

Target Platform: iOS

Toolchain Version: Swift 5.7.2

SDK Version: 15.5

Luki120 avatar Mar 28 '23 04:03 Luki120

Doesn't this remove backward compatibility? Will it be better to add a separate template for building apps on modern OS versions using Theos?

PoomSmart avatar Mar 28 '23 11:03 PoomSmart

Well I guess yeah, is it worth it though? There’s probably not many people making apps for < iOS 9, which is less common than tweaks, otherwise two new templates would’ve to be made for both Objective-C and Swift, but sure that’s also a solution

Luki120 avatar Mar 28 '23 18:03 Luki120

I'd argue against modifying the current templates as-is w/o adding legacy counterparts as targeting legacy iOS versions is still a supported use case for Theos. That being said, it does seem a bit much to add two new templates -- one for the ObjC app and one for the Swift -- with only an Info.plist change. Do we think it would be worthwhile to simply comment out the 'legacy' implementation, with a short message describing when you'd want to uncomment it, and add the changes proposed here?

L1ghtmann avatar Jul 30 '23 17:07 L1ghtmann

Do we think it would be worthwhile to simply comment out the 'legacy' implementation ...

No, comments in plists are not well supported and we should avoid this. Also, I feel like it does not provide a great user experience in my opinion.

leptos-null avatar Jul 30 '23 19:07 leptos-null

Fair enough. So does out-of-the-box legacy support take priority over sideloading support or do we want to add a couple "legacy"/"modern" templates? I'm kinda leaning towards the priority scenario personally

L1ghtmann avatar Jul 30 '23 21:07 L1ghtmann

Idk, as you said providing new templates with just an Info.plist change seems like too much, however sideloading a Theos app is also a common scenario, since you’ll most likely want your app to work on jailed. Realizing your app’s screen size suddenly looks different without knowing why until you start googling and find that the issue is in your plist isn’t a great user experience either imo. I’d prioritize sideloading support for newer deployment versions while also let the Theos user know in some way how to provide launch images for older iOS versions, which doesn’t involve comments in plists, as per Leptos comment. Maybe some kind of section on theos.dev?

Luki120 avatar May 18 '24 21:05 Luki120

Hm. I think we have three options assuming we don't go with additional templates:

  • Add a wiki here
  • Add a note in the README/relevant templates (note.md)
  • Add a new page to theos.dev/docs where we put miscellaneous items such as https://theos.dev/docs/installation-macos/#troubleshooting

I am sort of leaning toward one of the first two, but open to hear others' thoughts.

L1ghtmann avatar Jun 08 '24 16:06 L1ghtmann

I'd go with either 2 of 3 if it were me

Luki120 avatar Jun 08 '24 21:06 Luki120