Google VR?

Cardboard on iOS

Hi folks. I’m over here after viewing the discussion on Google Cardboard on iOS support - XR Development - Epic Developer Community Forums

I lost a few days to other projects and problems with mobile provisioning, but I’m back. Before I try to do anything fancy, I just want to test the pipeline from Unreal to Cardboard on iOS. I’d love any help you can offer.

  1. I can build a non-Unreal app in Xcode and launch it on my iOS phone
  2. I can create a First Person Blueprint Template (no code) and launch it on iOS either from Mac Unreal or Windows Unreal
  3. If I disable all the VR plugins and enable SimpleHMD, I can run that same project on Mac or Win with dual cameras
  4. If I enable the SimpleHMD plugin and then try to run that same Blueprint-only project on the phone again, I can’t.

Do I need to find the SimpleHMD source and build it? I have minimal experience understanding where things break in Unreal. The relevant part of my log is at the bottom of this post.

Ultimately, my goal would be to use the Cardboard SDK in a new plugin built on SimpleHMD (if I can find the source and figure out how to do that), because there are variants of Cardboard and it’d be nice to use the QR code configuration.

I also tried using the Rift template mitchemmc created and offered to the community here (VR Game Template - XR Development - Epic Developer Community Forums), disabling the Rift plugin and enabling the SimpleHMD plugin, but no luck deploying to the iOS phone either, although again, I could preview with two cameras in Windows just fine.

Log of my most recent attempt deploying from Mac Unreal to the phone with SimpleHMD plugin enabled:



LogCook:Display: Cook by the book total time in tick 3.580386s total time 7.067660
LogPlayLevel: Completed Launch On Stage: Cooking in the editor, Time: 4.420404
LogStats:Warning: MetaData mismatch. Did you assign a stat to two groups? New //STATGROUP_Threads//FLauncherTask///Thread_1387_0///####STATCAT_Advanced#### old //STATGROUP_Threads//FLauncherTask///Thread_19f23_0///####STATCAT_Advanced####
LogPlayLevel: Running AutomationTool...
LogPlayLevel: Setting up Mono
LogPlayLevel: Start UAT: mono AutomationTool.exe BuildCookRun -project=/Volumes/BOOTCAMP/Unreal Projects/FirstPersonTest/FirstPersonTest.uproject -noP4 -clientconfig=Development -serverconfig=Development -nocompile -nocompileeditor -rocket -ue4exe=UE4Editor -utf8output -platform=IOS -build -map=/Game/FirstPersonBP/Maps/FirstPersonExampleMap -skipcook -iterativecooking -compressed -iterativedeploy -stage -deploy -cmdline=/Game/FirstPersonBP/Maps/FirstPersonExampleMap -Messaging - -addcmdline=- -SessionOwner= -SessionName='Play On Device'
LogPlayLevel: Program.Main: CWD=/Users/Shared/UnrealEngine/4.9/Engine/Binaries/DotNET
LogPlayLevel: Automation.ParseCommandLine: Parsing command line: BuildCookRun -project=/Volumes/BOOTCAMP/Unreal Projects/FirstPersonTest/FirstPersonTest.uproject -noP4 -clientconfig=Development -serverconfig=Development -nocompile -nocompileeditor -rocket -ue4exe=UE4Editor -utf8output -platform=IOS -build -map=/Game/FirstPersonBP/Maps/FirstPersonExampleMap -skipcook -iterativecooking -compressed -iterativedeploy -stage -deploy -cmdline=/Game/FirstPersonBP/Maps/FirstPersonExampleMap -Messaging - -addcmdline=- -SessionOwner= -SessionName='Play On Device'
LogPlayLevel: Automation.Process: IsBuildMachine=False
LogPlayLevel: Automation.Process: ShouldKillProcesses=True
LogPlayLevel: Automation.Process: Setting up command environment.
LogPlayLevel: CommandUtils.SetEnvVar: SetEnvVar uebp_EngineSavedFolder=/Users/Shared/UnrealEngine/4.9/Engine/Programs/AutomationTool/Saved
LogPlayLevel: ProjectUtils.CleanupFolders: Cleaning up project rules folder
LogPlayLevel: CommandUtils.DeleteDirectoryContents: DeleteDirectoryContents(/Users/Shared/UnrealEngine/4.9/Engine/Programs/AutomationTool/Saved/Rules)
LogPlayLevel: Automation.Process: Compiling scripts.
LogPlayLevel: ScriptCompiler.LoadPreCompiledScriptAssemblies: Loading precompiled script DLLs
LogPlayLevel: ScriptCompiler.LoadPreCompiledScriptAssemblies: Found 9 script DLL(s).
LogPlayLevel: BuildCookRun.SetupParams: Setting up ProjectParams for /Volumes/BOOTCAMP/Unreal Projects/FirstPersonTest/FirstPersonTest.uproject
LogPlayLevel: ProjectUtils.CompileAndLoadTargetsAssembly: Compiling targets DLL: /Users/Shared/UnrealEngine/4.9/Engine/Programs/AutomationTool/Saved/Rules/UATRules1727917110.dll
LogPlayLevel: ProjectParams.ValidateAndLog: Project Params **************
LogPlayLevel: ProjectParams.ValidateAndLog: AdditionalServerMapParams=
LogPlayLevel: ProjectParams.ValidateAndLog: Archive=False
LogPlayLevel: ProjectParams.ValidateAndLog: ArchiveMetaData=False
LogPlayLevel: ProjectParams.ValidateAndLog: CreateAppBundle=True
LogPlayLevel: ProjectParams.ValidateAndLog: BaseArchiveDirectory=/Volumes/BOOTCAMP/Unreal Projects/FirstPersonTest/ArchivedBuilds
LogPlayLevel: ProjectParams.ValidateAndLog: BaseStageDirectory=/Volumes/BOOTCAMP/Unreal Projects/FirstPersonTest/Saved/StagedBuilds
LogPlayLevel: ProjectParams.ValidateAndLog: Build=True
LogPlayLevel: ProjectParams.ValidateAndLog: Cook=True
LogPlayLevel: ProjectParams.ValidateAndLog: Clean=
LogPlayLevel: ProjectParams.ValidateAndLog: Client=False
LogPlayLevel: ProjectParams.ValidateAndLog: ClientConfigsToBuild=Development
LogPlayLevel: ProjectParams.ValidateAndLog: ClientCookedTargets=FirstPersonTest
LogPlayLevel: ProjectParams.ValidateAndLog: ClientTargetPlatform=IOS
LogPlayLevel: ProjectParams.ValidateAndLog: Compressed=True
LogPlayLevel: ProjectParams.ValidateAndLog: UseDebugParamForEditorExe=False
LogPlayLevel: ProjectParams.ValidateAndLog: CookFlavor=
LogPlayLevel: ProjectParams.ValidateAndLog: CookOnTheFly=False
LogPlayLevel: ProjectParams.ValidateAndLog: CookOnTheFlyStreaming=False
LogPlayLevel: ProjectParams.ValidateAndLog: UnversionedCookedContent=False
LogPlayLevel: ProjectParams.ValidateAndLog: SkipCookingEditorContent=False
LogPlayLevel: ProjectParams.ValidateAndLog: NumCookersToSpawn=0
LogPlayLevel: ProjectParams.ValidateAndLog: GeneratePatch=False
LogPlayLevel: ProjectParams.ValidateAndLog: CreateReleaseVersion=
LogPlayLevel: ProjectParams.ValidateAndLog: BasedOnReleaseVersion=
LogPlayLevel: ProjectParams.ValidateAndLog: DLCName=
LogPlayLevel: ProjectParams.ValidateAndLog: DLCIncludeEngineContent=False
LogPlayLevel: ProjectParams.ValidateAndLog: AdditionalCookerOptions=
LogPlayLevel: ProjectParams.ValidateAndLog: DedicatedServer=False
LogPlayLevel: ProjectParams.ValidateAndLog: DirectoriesToCook=
LogPlayLevel: ProjectParams.ValidateAndLog: CulturesToCook=
LogPlayLevel: ProjectParams.ValidateAndLog: EditorTargets=
LogPlayLevel: ProjectParams.ValidateAndLog: Foreign=False
LogPlayLevel: ProjectParams.ValidateAndLog: IsCodeBasedProject=True
LogPlayLevel: ProjectParams.ValidateAndLog: IsProgramTarget=False
LogPlayLevel: ProjectParams.ValidateAndLog: IterativeCooking=True
LogPlayLevel: ProjectParams.ValidateAndLog: CookAll=False
LogPlayLevel: ProjectParams.ValidateAndLog: CookMapsOnly=False
LogPlayLevel: ProjectParams.ValidateAndLog: Deploy=True
LogPlayLevel: ProjectParams.ValidateAndLog: IterativeDeploy=True
LogPlayLevel: ProjectParams.ValidateAndLog: FastCook=False
LogPlayLevel: ProjectParams.ValidateAndLog: LogWindow=False
LogPlayLevel: ProjectParams.ValidateAndLog: Manifests=False
LogPlayLevel: ProjectParams.ValidateAndLog: MapToRun=/Game/FirstPersonBP/Maps/FirstPersonExampleMap
LogPlayLevel: ProjectParams.ValidateAndLog: NoClient=False
LogPlayLevel: ProjectParams.ValidateAndLog: NumClients=0
LogPlayLevel: ProjectParams.ValidateAndLog: NoDebugInfo=False
LogPlayLevel: ProjectParams.ValidateAndLog: NoCleanStage=False
LogPlayLevel: ProjectParams.ValidateAndLog: NoXGE=False
LogPlayLevel: ProjectParams.ValidateAndLog: MapsToCook=/Game/FirstPersonBP/Maps/FirstPersonExampleMap
LogPlayLevel: ProjectParams.ValidateAndLog: Pak=False
LogPlayLevel: ProjectParams.ValidateAndLog: Package=False
LogPlayLevel: ProjectParams.ValidateAndLog: NullRHI=False
LogPlayLevel: ProjectParams.ValidateAndLog: FakeClient=False
LogPlayLevel: ProjectParams.ValidateAndLog: EditorTest=False
LogPlayLevel: ProjectParams.ValidateAndLog: RunAutomationTests=False
LogPlayLevel: ProjectParams.ValidateAndLog: RunAutomationTest=
LogPlayLevel: ProjectParams.ValidateAndLog: RunTimeoutSeconds=0
LogPlayLevel: ProjectParams.ValidateAndLog: CrashIndex=0
LogPlayLevel: ProjectParams.ValidateAndLog: ProgramTargets=
LogPlayLevel: ProjectParams.ValidateAndLog: ProjectBinariesFolder=/Volumes/BOOTCAMP/Unreal Projects/FirstPersonTest/Binaries/IOS
LogPlayLevel: ProjectParams.ValidateAndLog: ProjectBinariesPath=/Volumes/BOOTCAMP/Unreal Projects/FirstPersonTest/Binaries/IOS
LogPlayLevel: ProjectParams.ValidateAndLog: ProjectGameExeFilename=/Volumes/BOOTCAMP/Unreal Projects/FirstPersonTest/Binaries/IOS/FirstPersonTest.stub
LogPlayLevel: ProjectParams.ValidateAndLog: ProjectGameExePath=/Volumes/BOOTCAMP/Unreal Projects/FirstPersonTest/Binaries/IOS/FirstPersonTest.stub
LogPlayLevel: ProjectParams.ValidateAndLog: Distribution=False
LogPlayLevel: ProjectParams.ValidateAndLog: Prebuilt=False
LogPlayLevel: ProjectParams.ValidateAndLog: Prereqs=False
LogPlayLevel: ProjectParams.ValidateAndLog: NoBootstrapExe=False
LogPlayLevel: ProjectParams.ValidateAndLog: RawProjectPath=/Volumes/BOOTCAMP/Unreal Projects/FirstPersonTest/FirstPersonTest.uproject
LogPlayLevel: ProjectParams.ValidateAndLog: Rocket=True
LogPlayLevel: ProjectParams.ValidateAndLog: Run=False
LogPlayLevel: ProjectParams.ValidateAndLog: ServerConfigsToBuild=Development
LogPlayLevel: ProjectParams.ValidateAndLog: ServerCookedTargets=
LogPlayLevel: ProjectParams.ValidateAndLog: ServerTargetPlatform=IOS
LogPlayLevel: ProjectParams.ValidateAndLog: ShortProjectName=FirstPersonTest
LogPlayLevel: ProjectParams.ValidateAndLog: SignedPak=False
LogPlayLevel: ProjectParams.ValidateAndLog: SignPak=
LogPlayLevel: ProjectParams.ValidateAndLog: SkipCook=True
LogPlayLevel: ProjectParams.ValidateAndLog: SkipCookOnTheFly=False
LogPlayLevel: ProjectParams.ValidateAndLog: SkipPak=False
LogPlayLevel: ProjectParams.ValidateAndLog: SkipStage=False
LogPlayLevel: ProjectParams.ValidateAndLog: Stage=True
LogPlayLevel: ProjectParams.ValidateAndLog: bUsesSteam=False
LogPlayLevel: ProjectParams.ValidateAndLog: bUsesCEF3=False
LogPlayLevel: ProjectParams.ValidateAndLog: bUsesSlate=True
LogPlayLevel: ProjectParams.ValidateAndLog: bDebugBuildsActuallyUseDebugCRT=False
LogPlayLevel: ProjectParams.ValidateAndLog: Project Params **************
LogPlayLevel: Project.Build: ********** BUILD COMMAND STARTED **********
LogPlayLevel: UE4Build.Build: XGE was requested, but is unavailable, so we won't use it.
LogPlayLevel: UE4Build.Build: ************************* UE4Build:
LogPlayLevel: UE4Build.Build: ************************* ForceMonolithic: False
LogPlayLevel: UE4Build.Build: ************************* ForceNonUnity:False
LogPlayLevel: UE4Build.Build: ************************* ForceDebugInfo: False
LogPlayLevel: UE4Build.Build: ************************* UseXGE: False
LogPlayLevel: UE4Build.Build: ************************* UseParallelExecutor: False
LogPlayLevel: Completed Launch On Stage: Build Task, Time: 2.268957
LogStats:Warning: MetaData mismatch. Did you assign a stat to two groups? New //STATGROUP_Threads//FLauncherTask///Thread_1b493_0///####STATCAT_Advanced#### old //STATGROUP_Threads//FLauncherTask///Thread_19f23_0///####STATCAT_Advanced####
LogPlayLevel: CommandUtils.Run: Run: mono "/Users/Shared/UnrealEngine/4.9/Engine/Binaries/DotNET/UnrealBuildTool.exe" FirstPersonTest IOS Development  "/Volumes/BOOTCAMP/Unreal Projects/FirstPersonTest/FirstPersonTest.uproject"  -noxge -generatemanifest -rocket -nocreatestub -NoHotReloadFromIDE
LogPlayLevel: mono: Compiling with iPhoneOS SDK 9.0
LogPlayLevel: CommandUtils.Run: Run: Took 2.096185s to run mono, ExitCode=0
LogPlayLevel: UE4Build.PrepareManifest: Copied UBT manifest to /Users//Library/Logs/Unreal Engine/LocalBuildLogs/UBTManifest.7.xml
LogPlayLevel: CommandUtils.Run: Run: mono "/Users/Shared/UnrealEngine/4.9/Engine/Binaries/DotNET/UnrealBuildTool.exe" FirstPersonTest IOS Development  "/Volumes/BOOTCAMP/Unreal Projects/FirstPersonTest/FirstPersonTest.uproject"  -noxge -rocket -nocreatestub -NoHotReloadFromIDE -ignorejunk
LogPlayLevel: mono: Compiling with iPhoneOS SDK 9.0
LogPlayLevel: mono: Compiling with these architectures: armv7
LogPlayLevel: mono: Unzipping: /Users/Shared/UnrealEngine/4.9/Engine/Source/ThirdParty/Facebook/IOS/FacebookSDK/FBSDKCoreKit.embeddedframework.zip -> /Volumes/BOOTCAMP/Unreal Projects/FirstPersonTest/Intermediate/UnzippedFrameworks/FacebookIOS/FacebookSDK/FBSDKCoreKit.embeddedframework
LogPlayLevel: mono: Unzipping: /Users/Shared/UnrealEngine/4.9/Engine/Source/ThirdParty/Facebook/IOS/FacebookSDK/FBAudienceNetwork.embeddedframework.zip -> /Volumes/BOOTCAMP/Unreal Projects/FirstPersonTest/Intermediate/UnzippedFrameworks/FacebookIOS/FacebookSDK/FBAudienceNetwork.embeddedframework
LogPlayLevel: mono: Unzipping: /Users/Shared/UnrealEngine/4.9/Engine/Source/ThirdParty/Facebook/IOS/FacebookSDK/FBSDKLoginKit.embeddedframework.zip -> /Volumes/BOOTCAMP/Unreal Projects/FirstPersonTest/Intermediate/UnzippedFrameworks/FacebookIOS/FacebookSDK/FBSDKLoginKit.embeddedframework
LogPlayLevel: mono: Unzipping: /Users/Shared/UnrealEngine/4.9/Engine/Source/ThirdParty/Facebook/IOS/FacebookSDK/FBSDKShareKit.embeddedframework.zip -> /Volumes/BOOTCAMP/Unreal Projects/FirstPersonTest/Intermediate/UnzippedFrameworks/FacebookIOS/FacebookSDK/FBSDKShareKit.embeddedframework
LogPlayLevel: mono: Performing 2 actions (8 in parallel)
LogPlayLevel: mono: [1/2] clang++ UELinkerFixups.cpp
LogPlayLevel: mono: [2/2] clang++ /Volumes/BOOTCAMP/Unreal Projects/FirstPersonTest/Binaries/IOS/FirstPersonTest
LogPlayLevel: mono: ld: framework not found FBAudienceNetwork
LogPlayLevel: mono: clang: error: linker command failed with exit code 1 (use -v to see invocation)
LogPlayLevel: mono: -------- End Detailed Actions Stats -----------------------------------------------------------
LogPlayLevel: mono: ERROR: UBT ERROR: Failed to produce item: /Volumes/BOOTCAMP/Unreal Projects/FirstPersonTest/Binaries/IOS/FirstPersonTest
LogPlayLevel: mono: Total build time: 4.59 seconds
LogPlayLevel: CommandUtils.Run: Run: Took 4.658558s to run mono, ExitCode=5
LogPlayLevel: BuildCommand.Execute: ERROR: BUILD FAILED
LogPlayLevel: Program.Main: ERROR: AutomationTool terminated with exception:
LogPlayLevel: Program.Main: ERROR: Exception in AutomationUtils.Automation: Command failed (Result:5): /Users/Shared/UnrealEngine/4.9/Engine/Binaries/DotNET/UnrealBuildTool.exe FirstPersonTest IOS Development  "/Volumes/BOOTCAMP/Unreal Projects/FirstPersonTest/FirstPersonTest.uproject"  -noxge -rocket -nocreatestub -NoHotReloadFromIDE -ignorejunk. See logfile for details: 'UnrealBuildTool-2015.09.21-15.11.22.txt'
LogPlayLevel: Stacktrace:   at AutomationTool.CommandUtils.RunAndLog (System.String App, System.String CommandLine, System.String Logfile, Int32 MaxSuccessCode, System.String Input, ERunOptions Options, System.Collections.Generic.Dictionary`2 EnvVars) [0x00000] in <filename unknown>: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.Dictionary`2 EnvVars) [0x00000] in <filename unknown>:0
LogPlayLevel:   at AutomationTool.CommandUtils.RunUBT (AutomationTool.CommandEnvironment Env, System.String UBTExecutable, System.String CommandLine, System.String LogName, System.Collections.Generic.Dictionary`2 EnvVars) [0x00000] in &lt;filename unknown&gt;:0
LogPlayLevel:   at AutomationTool.CommandUtils.RunUBT (AutomationTool.CommandEnvironment Env, System.String UBTExecutable, System.String Project, System.String Target, System.String Platform, System.String Config, System.String AdditionalArgs, System.String LogName, System.Collections.Generic.Dictionary`2 EnvVars) [0x00000] in <filename unknown>:0
LogPlayLevel:   at AutomationTool.UE4Build.BuildWithUBT (System.String ProjectName, System.String TargetName, UnrealTargetPlatform TargetPlatform, System.String Config, System.String UprojectPath, Boolean ForceMonolithic, Boolean ForceNonUnity, Boolean ForceDebugInfo, Boolean ForceFlushMac, Boolean DisableXGE, System.String InAddArgs, Boolean ForceUnity, System.Collections.Generic.Dictionary`2 EnvVars) [0x00000] in &lt;filename unknown&gt;:0
LogPlayLevel:   at AutomationTool.UE4Build.Build (AutomationTool.BuildAgenda Agenda, Nullable`1 InDeleteBuildProducts, Boolean InUpdateVersionFiles, Boolean InForceNoXGE, Boolean InUseParallelExecutor, Boolean InForceNonUnity, Boolean InForceUnity, Boolean InShowProgress, System.Collections.Generic.Dictionary`2 PlatformEnvVars) [0x00000] in &lt;filename unknown&gt;:0
LogPlayLevel:   at Project.Build (BuildCommand Command, AutomationTool.ProjectParams Params, Int32 WorkingCL) [0x00000] in &lt;filename unknown&gt;:0
LogPlayLevel:   at BuildCookRun.DoBuildCookRun (AutomationTool.ProjectParams Params) [0x00000] in &lt;filename unknown&gt;:0
LogPlayLevel:   at BuildCookRun.ExecuteBuild () [0x00000] in &lt;filename unknown&gt;:0
LogPlayLevel:   at BuildCommand.Execute () [0x00000] in &lt;filename unknown&gt;:0
LogPlayLevel: Program.Main: AutomationTool exiting with ExitCode=5
LogPlayLevel: Domain_ProcessExit
LogPlayLevel: Completed Launch On Stage: Build Task, Time: 6.315943
LogPlayLevel: RunUAT ERROR: AutomationTool was unable to run successfully.
PackagingResults:Error: Error Deployment failed! Unknown Error