Hi EPS Team,
On our game we’re working on Mac (Designed for iPad), which allows an iOS build to run on macOS without building a fully native Mac version. While testing our Unreal mobile app in this environment, we ran into a couple issues around platform detection and input handling, and we would like support in getting a fix.
01 - Platform Detection
When the app runs as Mac (Designed for iPad), Unreal and our codebase appear to interpret the environment strictly as iOS:
- `PLATFORM_IOS` → true
- `PLATFORM_MAC` → false
Because of this we currently can’t distinguish between iOS app running on MacOS via the compatibility layer. This prevents us from enabling Mac-specific logic (mouse behavior, cursor handling, input routing, etc.).
What we THINK may be needed
A reliable runtime way to detect “iOS app running on Mac” so we can propagate that signal into Unreal and our gameplay systems are able to properly detect the proper input.
After speaking with the Apple team we think adding support for `ProcessInfo.processInfo.isiOSAppOnMac` which lives on the iOS side would help.
The idea would be to detect this at runtime and expose the state into Unreal so the input is properly communicated to our gameplay systems.
02 - Input Detection
Our input logic relies on Unreal’s `CommonInputSubsystem: InputSubsystem->GetCurrentInputType()`
Most of our plugins and features use this to determine whether the game should operate in:
- Touch mode
- Mouse/keyboard mode
However, when running as Mac (Designed for iPad), the value always reports `ECommonInputType::Touch` even when the user is clearly using a mouse or trackpad. Our assumption is that Apple’s pointer → touch translation layer, combined with Unreal’s platform assumptions, is causing the engine to always treat the environment as touch.
Our ask for the EPS Team:
- Add support for iOS app to detect it is running on macOS via Mac (Designed for iPad)
- Add that information into Unreal so it properly communicates the input to our features and plugins
If our assumptions above are correct, the implementation would likely be:
- Detect iOS-on-Mac at runtime.
- Surface that state into Unreal appropriately.
- Adjust input handling so the game properly supports mouse/keyboard interactions when running in this environment.
[Attachment Removed]