Hi,
We are testing our legacy UIKit app on iPhone Duo, built with Xcode26 / iOS26 SDK.
Important background:
- Our app is pure AppDelegate‑only, we do NOT adopt UIApplicationSceneManifest / SceneDelegate, runs in legacy compatibility mode.
- Codebase heavily uses
UIScreen.maineverywhere, noUIWindowSceneadoption yet. - We are in progress to adopt full iPhone Duo compatibility with Xcode27. For now, we need to ship builds using Xcode26 SDK and expect reasonable compatibility on iPhone Duo hardware. The system already provides legacy compatibility container window for our app.
- Most of our app UI renders correctly inside the system compatibility window on iPhone Duo.
Problems we observed under Xcode26 build on iPhone Duo:
- System‑rendered permission alerts (push‑notification permission, photo library, location authorization dialog, drawn by system process) are centered relative to the full physical inner display, NOT centered inside our app’s compatibility‑mode window. The alert position is mis‑aligned with our app viewport.
- The system
UINavigationBarlayout offset issue:
When running inside legacy compatibility window, system‑provided UINavigationBar calculates its top position against full physical screen safe‑area instead of the app compatibility container’s safe‑area. As a result, navigation bar appears too close to the top edge, mis‑aligned with the actual status‑bar area inside our app window.
My questions:
- Are above two issues (system permission alert mis‑position, UINavigationBar safe‑area offset) the expected defined behavior for legacy non‑Scene apps running in compatibility mode on iPhone Duo when built with Xcode26 SDK?
- When staying on Xcode26 SDK (before we complete Xcode27 & scene‑based lifecycle migration):
Is there any workaround we can apply to mitigate these two issues? Or are these limitations unavoidable under Xcode26 / legacy compatibility mode and we can only accept current behavior until we fully migrate to scene‑based lifecycle? 3. If these are expected limitations: is there any official documentation that explicitly describes these behaviours for legacy apps on iPhone Duo?
Thank you.