MacOS 10.12 beta / Xcode 8.0 build issues

I built UE4 a while back using macOS 10.11, but after updating to the 10.12 beta with Xcode 8.0, I keep getting an error (on release, promoted, and master branches) that looks like this:

Runtime/CoreUObject/Public/UObject/Class.h:901:4:
error: destructor called on non-final
‘SomeClassOrAnother’ that has virtual
functions but non-virtual destructor
[-Werror,-Wdelete-non-virtual-dtor]

((CPPSTRUCT*)Dest)->~CPPSTRUCT();

Ok, I got UE4 to build on macOS 10.12 with Xcode 8.0 doing the following steps:

  1. Manually build mono from the master branch following the usual make steps (download, config, make, make install).

  2. In Engine/Source/Runtime/Online/HTTP/Private/Apple/AppleHTTP.cpp change

    SecTrustResultType TrustResult = 0;
    to

    SecTrustResultType TrustResult = kSecTrustResultInvalid;
    This is a legit change that you can probably keep forever (and maybe I should make a PR about, I dunno).

  3. In Engine/Source/Runtime/Core/Public/Mac/MacPlatformCompilerPreSetup.h after all the ignored warnings add

    #pragma clang diagnostic ignored “-Wdelete-non-virtual-dtor”
    This fix should probably be removed once macOS 10.12 is supported, because I’m pretty sure they want that warning to trigger an error.

The problem is, even if you get everything to build, the editor still gets stuck in the initializing state at 10%. I guess UE4 just isn’t usable on macOS 10.12 for now.

You don’t actually need to build mono yourself. You just have to download a version greater or equal to 4.6 and make sure it’s in your path. 4.8 downloaded via Visual Studio for Mac works perfectly fine.