ARKit - Build error: Undefined symbols for architecture arm64 (UE4-AppleARKit.a)

I can’t seem to get ARkit to compile.
I have the XCode 9 GM build, and 4.7.1

ARkit XCode projects build without any issues but as soon as I try to build something in UE, I get this error when I try to run it on my phone:

LogPlayLevel: UnrealBuildTool: Compiling with iPhoneOS SDK 11.0
LogPlayLevel: UnrealBuildTool: Performing 1 actions (8 in parallel)
LogPlayLevel: UnrealBuildTool: [1/1] sh /Users/sjespers/Documents/Unreal Projects/MyARProject3/Binaries/IOS/MyARProject3
LogPlayLevel: UnrealBuildTool: Undefined symbols for architecture arm64:
LogPlayLevel: UnrealBuildTool: “OBJC_CLASS$_ARSessionConfiguration”, referenced from:
LogPlayLevel: UnrealBuildTool: objc-class-ref in UE4-AppleARKit.a(Module.AppleARKit.cpp.o)
LogPlayLevel: UnrealBuildTool: “OBJC_CLASS$_ARWorldTrackingSessionConfiguration”, referenced from:
LogPlayLevel: UnrealBuildTool: objc-class-ref in UE4-AppleARKit.a(Module.AppleARKit.cpp.o)
LogPlayLevel: UnrealBuildTool: ld: symbol(s) not found for architecture arm64
LogPlayLevel: UnrealBuildTool: clang: error: linker command failed with exit code 1 (use -v to see invocation)
LogPlayLevel: UnrealBuildTool: ERROR: UBT ERROR: Failed to produce item: /Users/sjespers/Documents/Unreal Projects/MyARProject3/Binaries/IOS/MyARProject3
LogPlayLevel: UnrealBuildTool: Total build time: 13.86 seconds (Local executor: 0.00 seconds)
LogPlayLevel: CommandUtils.Run: Run: Took 14.268356s to run mono, ExitCode=5
LogPlayLevel: Program.Main: ERROR: AutomationTool terminated with exception: AutomationTool.CommandUtils+CommandFailedException: Command failed (Result:5): /Users/Shared/Epic Games/UE_4.17/Engine/Binaries/DotNET/UnrealBuildTool.exe MyARProject3 IOS Development -Project="/Users/sjespers/Documents/Unreal Projects/MyARProject3/MyARProject3.uproject" “/Users/sj
espers/Documents/Unreal Projects/MyARProject3/MyARProject3.uproject” -NoUBTMakefiles -remoteini="/Users/sjespers/Documents/Unreal Projects/MyARProject3" -skipdeploy -noxge -nocreatestub -NoHotReload -ignorejunk. See logfile for details: ‘UnrealBuildTool-2017.09.14-22.37.33.txt’
LogPlayLevel: at AutomationTool.CommandUtils.RunAndLog (System.String App, System.String CommandLine, System.String Logfile, Int32 MaxSuccessCode, System.String Input, ERunOptions Options, System.Collections.Generic.Dictionary2 EnvVars, AutomationTool.SpewFilterCallbackType SpewFilterCallback) [0x00000] in :0 LogPlayLevel: at AutomationTool.CommandUtils.RunAndLog (AutomationTool.CommandEnvironment Env, System.String App, System.String CommandLine, System.String LogName, Int32 MaxSuccessCode, System.String Input, ERunOptions Options, System.Collections.Generic.Dictionary2 EnvVars, AutomationTool.SpewFilterCallbackType SpewFilterCallback) [0x00000] in :0
LogPlayLevel: at AutomationTool.CommandUtils.RunUBT (AutomationTool.CommandEnvironment Env, System.String UBTExecutable, System.String CommandLine, System.String LogName, System.Collections.Generic.Dictionary2 EnvVars) [0x00000] in :0 LogPlayLevel: at AutomationTool.CommandUtils.RunUBT (AutomationTool.CommandEnvironment Env, System.String UBTExecutable, UnrealBuildTool.FileReference Project, System.String Target, System.String Platform, System.String Config, System.String AdditionalArgs, System.String LogName, System.Collections.Generic.Dictionary2 EnvVars) [0x00000] in :0
LogPlayLevel: at AutomationTool.UE4Build.BuildWithUBT (System.String TargetName, UnrealTargetPlatform TargetPlatform, System.String Config, UnrealBuildTool.FileReference UprojectPath, Boolean ForceMonolithic, Boolean ForceNonUnity, Boolean ForceDebugInfo, Boolean ForceFlushMac, Boolean DisableXGE, System.String InAddArgs, Boolean ForceUnity, System.Collect
ions.Generic.Dictionary2 EnvVars) [0x00000] in :0 LogPlayLevel: at AutomationTool.UE4Build.Build (AutomationTool.BuildAgenda Agenda, Nullable1 InDeleteBuildProducts, Boolean InUpdateVersionFiles, Boolean InForceNoXGE, Boolean InUseParallelExecutor, Boolean InForceNonUnity, Boolean InForceUnity, Boolean InShowProgress, System.Collections.Generic.Dictionary2 PlatformEnvVars, Nullable1 InChangelistNumberO
verride, System.Collections.Generic.Dictionary2 InTargetToManifest) [0x00000] in :0 LogPlayLevel: at Project.Build (AutomationTool.BuildCommand Command, AutomationTool.ProjectParams Params, Int32 WorkingCL, ProjectBuildTargets TargetMask) [0x00000] in :0 LogPlayLevel: at BuildCookRun.DoBuildCookRun (AutomationTool.ProjectParams Params) [0x00000] in :0 LogPlayLevel: at BuildCookRun.ExecuteBuild () [0x00000] in :0 LogPlayLevel: at AutomationTool.BuildCommand.Execute () [0x00000] in :0 LogPlayLevel: at AutomationTool.Automation.Execute (System.Collections.Generic.List1 CommandsToExecute, System.Collections.Generic.Dictionary2 Commands) [0x00000] in :0 LogPlayLevel: at AutomationTool.Automation.Process (System.String[] Arguments) [0x00000] in :0 LogPlayLevel: at AutomationTool.Program.MainProc (System.Object Param) [0x00000] in :0 LogPlayLevel: at AutomationTool.InternalUtils.RunSingleInstance (System.Func2 Main, System.Object Param) [0x00000] in :0
LogPlayLevel: at AutomationTool.Program.Main () [0x00000] in :0
LogPlayLevel: Program.Main: AutomationTool exiting with ExitCode=5 (5)
LogPlayLevel: Completed Launch On Stage: Build Task, Time: 15.720904
LogPlayLevel: RunUAT ERROR: AutomationTool was unable to run successfully.
PackagingResults: Error: Launch failed! Unknown Error

Anyone have any thoughts? I’m supposed to finish a proof of concept on Tuesday.

I have the same problem!!!

This is because the ARkit plugin in 4.17.1 is using deprecated class names: ARSessionConfiguration was replaced by ARConfiguration in the later iOS 11 betas and the released version, and similarly for ARWorldTrackingSessionConfiguration.

I got the same error when I use UE4.17 on IOS 11.
So, I tried 4.18 preview and all working fine!