Apple Rejects iOS App For Using MoltenVK Vulkan, Alleged Non-Public API
Back in February MoltenVK was open-sourced as part of The Khronos Group and Valve working harder to get Vulkan working on macOS/iOS by mapping it through to using Apple's Metal Graphics/Compute API. The most notable user of MoltenVK on macOS to date is the Vulkan Dota 2 on Mac, but for those looking to use this Vulkan-to-Metal framework on iOS, it looks like Apple might be clamping down.
We were alerted today by an indie game studio that one of their iOS games is now rejected by Apple over its MoltenVK usage. Specifically, the game was rejected for "non-public API" usage. Apple's rejection letter cites the use of non-public interfaces around IOSurface, which is used directly by MoltenVK. (IOSurface is part of the iOS 11.0+ and macOS 10.6+ SDKs for sharing hardware-accelerated buffer data between processes.)
Apple back in May allowed the game into the App Store while using MoltenVK, but with the latest update to their game, which is built around Unity 3D, is now being blocked over this "non-public API" usage.
The studio is making standard usage of MoltenVK 1.1.73 without modifications and their latest update to this Vulkan-over-Metal game was just to fix bugs within the game itself -- nothing changed within MoltenVK compared to its initial entry in the App Store, but now it's deemed by Apple to have "non-public API" use.
This is the first we have heard of Apple rejecting apps for using MoltenVK or its alleged "non-public API" usage, though frankly not too surprising given Apple's approach to things. This would be a blow to iOS usage but at least nothing is stopping users from distributing macOS applications themselves (or on services like Steam) outside of the macOS App Store... We'll update if/when we hear more on the situation or if coming across other game studios now being blocked by their MoltenVK usage.
Update: A Valve developer has commented here on the situation and has now been put in touch with the mobile game developer in question for hopefully getting to the bottom of this IOsurface fiasco.
Update: MoltenVK Gets Patches To Workaround iOS API Issue, App Store Rejection
Update - 29 July: Everything appears cleared up now.
We were alerted today by an indie game studio that one of their iOS games is now rejected by Apple over its MoltenVK usage. Specifically, the game was rejected for "non-public API" usage. Apple's rejection letter cites the use of non-public interfaces around IOSurface, which is used directly by MoltenVK. (IOSurface is part of the iOS 11.0+ and macOS 10.6+ SDKs for sharing hardware-accelerated buffer data between processes.)
Apple back in May allowed the game into the App Store while using MoltenVK, but with the latest update to their game, which is built around Unity 3D, is now being blocked over this "non-public API" usage.
The studio is making standard usage of MoltenVK 1.1.73 without modifications and their latest update to this Vulkan-over-Metal game was just to fix bugs within the game itself -- nothing changed within MoltenVK compared to its initial entry in the App Store, but now it's deemed by Apple to have "non-public API" use.
This is the first we have heard of Apple rejecting apps for using MoltenVK or its alleged "non-public API" usage, though frankly not too surprising given Apple's approach to things. This would be a blow to iOS usage but at least nothing is stopping users from distributing macOS applications themselves (or on services like Steam) outside of the macOS App Store... We'll update if/when we hear more on the situation or if coming across other game studios now being blocked by their MoltenVK usage.
Update: A Valve developer has commented here on the situation and has now been put in touch with the mobile game developer in question for hopefully getting to the bottom of this IOsurface fiasco.
Update: MoltenVK Gets Patches To Workaround iOS API Issue, App Store Rejection
Update - 29 July: Everything appears cleared up now.
59 Comments