Can confirm this is due to using the Xcode 9 - beta 2 as the default Xcode on a 2017 MBP.
There is definitely an issue with the integration of the Metal system, but I’m not savvy enough to figure out where it stems from.
What I do know:
Building the editor via Xcode results in errors in MetalRHI.cpp file.
Running the xcode-select -reset command via terminal and defaulting back to the current stable version of Xcode fixes this issue in UE4.
It is due to a change in Apple’s Xcode 9 Beta ‘metal’ byte-code shader compiler versus the Xcode 8 version, even when providing the same Metal shader text and compilation options. This will be resolved in a future version of Xcode and/or UE4. Until then please use the current version of Xcode (8.3.3 at the time of writing) - this is the sort of thing Betas are released to find.
If you use the 4.17.1 from the launcher and then install the Xcode beta app, use the terminal command to reroute where UE looks for Xcode, you should be able to get iOS 11 and ue4 playing nicely.
Granted, now that the official ios / sdk 11 is out, I don’t think “beta” xcode is around anymore so you’ll have to use the official Xcode 9 version for ios11. I’m not sure Epic has updated to support the official release just yet, unless you’re willing to jump to 4.18 preview 1, which may break other features.
Ultimately, I was having this issue when UE4 was pointing to a beta version of Xcode that itself had metal bugs. Those have since been patched, and as long as you have the right version of Xcode matched with unreal, it should let you compile shaders without issue, albeit some time lag.
I’m using the official Xcode 9 version, but still have those issues. I’m not even using it for iOS but for macOS I have been having metal shaders issues for months. Have not find any solution yet.
You will need to upgrade to Unreal Engine 4.18 which includes a substantial refactoring of our Metal shader compiler to deal with the changes in Xcode 9’s Metal bytecode compiler.