Download

Can't Deploy C++ Project on iOS

AnswerHub Question

So I’m trying to just simply deploy the stock 3rd Person Project on iOS.
When I create it as a Blueprint Project, as soon as the project is created I can deploy it to my iPhone…
When i create it as a C++ Project, I get errors and no deployment.

I’m pretty new at this, is there something I’m missing with C++ Projects?

The main error’s I’m getting are “specified path differes in case from the file name on disk”

Below is a section of the error log.


UnrealBuildTool: /Users/Shared/Epic Games/UE_4.14/Engine/Source/Runtime/Core/Public/HAL/PlatformProcess.h:15:10: error: non-portable path to file '"iOS/IOSPlatformProcess.h"'; specified path differs in case from file name on disk -Werror,-Wnonportable-include-path]
UnrealBuildTool: #include "IOS/IOSSystemIncludes.h"
UnrealBuildTool:          ^~~~~~~~~~~~~~~~~~~~~~~~~
UnrealBuildTool:          "iOS/IOSSystemIncludes.h"
UnrealBuildTool: In file included from /Volumes/Scratch Disk/Dropbox/Unreal Projects/iOScThird/Intermediate/Build/IOS/UE4/Inc/iOScThird/iOScThird.generated.cpp:8:
UnrealBuildTool: In file included from /Volumes/Scratch Disk/Dropbox/Unreal Projects/iOScThird/Source/iOScThird/iOScThird.h:6:
UnrealBuildTool: In file included from /Users/Shared/Epic Games/UE_4.14/Engine/Source/Runtime/Engine/Public/EngineMinimal.h:10:
UnrealBuildTool: In file included from /Users/Shared/Epic Games/UE_4.14/Engine/Source/Runtime/CoreUObject/Public/CoreUObject.h:5:
UnrealBuildTool: In file included from /Users/Shared/Epic Games/UE_4.14/Engine/Source/Runtime/Core/Public/Core.h:16:
UnrealBuildTool: In file included from /Users/Shared/Epic Games/UE_4.14/Engine/Source/Runtime/Core/Public/HAL/PlatformIncludes.h:8:
UnrealBuildTool: In file included from /Users/Shared/Epic Games/UE_4.14/Engine/Source/Runtime/Core/Public/HAL/PlatformString.h:15:
UnrealBuildTool: In file included from /Users/Shared/Epic Games/UE_4.14/Engine/Source/Runtime/Core/Public/Apple/ApplePlatformString.h:9:
UnrealBuildTool: In file included from /Users/Shared/Epic Games/UE_4.14/Engine/Source/Runtime/Core/Public/GenericPlatform/StandardPlatformString.h:4:
UnrealBuildTool: In file included from /Users/Shared/Epic Games/UE_4.14/Engine/Source/Runtime/Core/Public/GenericPlatform/GenericPlatformStricmp.h:8:
UnrealBuildTool: In file included from /Users/Shared/Epic Games/UE_4.14/Engine/Source/Runtime/Core/Public/Templates/UnrealTypeTraits.h:23:
UnrealBuildTool: In file included from /Users/Shared/Epic Games/UE_4.14/Engine/Source/Runtime/Core/Public/Misc/AssertionMacros.h:6:
UnrealBuildTool: In file included from /Users/Shared/Epic Games/UE_4.14/Engine/Source/Runtime/Core/Public/HAL/PlatformMisc.h:14:
UnrealBuildTool: In file included from /Users/Shared/Epic Games/UE_4.14/Engine/Source/Runtime/Core/Public/IOS/IOSPlatformMisc.h:9:
UnrealBuildTool: /Users/Shared/Epic Games/UE_4.14/Engine/Source/Runtime/Core/Public/IOS/IOSSystemIncludes.h:5:10: error: non-portable path to file '"iOS/IOSPlatformCompilerSetup.h"'; specified path differs in case from file name on disk -Werror,-Wnonportable-include-path]
UnrealBuildTool: #include "IOS/IOSPlatformCompilerSetup.h"



Devloping on:
MacOS 10.12.3
UE 4.14.3
Xcode 8.3
iOS 10.3

Blueprint Project 4.15.1 works.
When I attempt to deploy a C++ Project on 4.15.1 I get all sorts of new/different errors.


Running AutomationTool...
Setting up Mono
Start UAT: mono AutomationTool.exe -ScriptsForProject=/Volumes/Scratch Disk/Dropbox/Unreal Projects/iosc415/iosc415.uproject BuildCookRun -project=/Volumes/Scratch Disk/Dropbox/Unreal Projects/iosc415/iosc415.uproject -noP4 -clientconfig=Development -serverconfig=Development -nocompile -nocompileeditor -installed -ue4exe=UE4Editor -utf8output -platform=IOS -build -cookonthefly -nokill -map= -compressed -stage -deploy -cmdline= -Messaging -device=IOS@d7f1c88e382b80f29556a32c7ed0a139e5a41315 -addcmdline=-SessionId=BAB446447C4DF43968FEDE9AC13CF251 -SessionOwner='natemcgraw' -SessionName='iPhone'  -run
Automation.ParseCommandLine: Parsing command line: -ScriptsForProject="/Volumes/Scratch Disk/Dropbox/Unreal Projects/iosc415/iosc415.uproject" BuildCookRun -project="/Volumes/Scratch Disk/Dropbox/Unreal Projects/iosc415/iosc415.uproject" -noP4 -clientconfig=Development -serverconfig=Development -nocompile -nocompileeditor -installed -ue4exe=UE4Editor -utf8output -platform=IOS -build -cookonthefly -nokill -map= -compressed -stage -deploy -cmdline=" -Messaging" -device=IOS@d7f1c88e382b80f29556a32c7ed0a139e5a41315 -addcmdline="-SessionId=BAB446447C4DF43968FEDE9AC13CF251 -SessionOwner='natemcgraw' -SessionName='iPhone' " -run
Automation.Process: Setting up command environment.
BuildCookRun.SetupParams: Setting up ProjectParams for /Volumes/Scratch Disk/Dropbox/Unreal Projects/iosc415/iosc415.uproject
Project.Build: ********** BUILD COMMAND STARTED **********
CommandUtils.Run: Run: mono "/Users/Shared/Epic Games/UE_4.15/Engine/Binaries/DotNET/UnrealBuildTool.exe" iosc415 IOS Development -Project="/Volumes/Scratch Disk/Dropbox/Unreal Projects/iosc415/iosc415.uproject"  "/Volumes/Scratch Disk/Dropbox/Unreal Projects/iosc415/iosc415.uproject"  -remoteini="/Volumes/Scratch Disk/Dropbox/Unreal Projects/iosc415" -noxge -generatemanifest -nocreatestub -NoHotReload
UnrealBuildTool: Compiling with iPhoneOS SDK 10.3
CommandUtils.Run: Run: Took 8.996055s to run mono, ExitCode=0
CommandUtils.Run: Run: mono "/Users/Shared/Epic Games/UE_4.15/Engine/Binaries/DotNET/UnrealBuildTool.exe" iosc415 IOS Development -Project="/Volumes/Scratch Disk/Dropbox/Unreal Projects/iosc415/iosc415.uproject"  "/Volumes/Scratch Disk/Dropbox/Unreal Projects/iosc415/iosc415.uproject"  -remoteini="/Volumes/Scratch Disk/Dropbox/Unreal Projects/iosc415" -noxge -nocreatestub -NoHotReload -ignorejunk
UnrealBuildTool: Compiling with iPhoneOS SDK 10.3
UnrealBuildTool: Performing 5 actions (24 in parallel)
UnrealBuildTool: [1/5] clang++ iosc415.generated.cpp
UnrealBuildTool: [4/5] clang++ iosc415.cpp
UnrealBuildTool: [3/5] clang++ iosc415GameMode.cpp
UnrealBuildTool: [2/5] clang++ iosc415Character.cpp
UnrealBuildTool: In file included from /Volumes/Scratch Disk/Dropbox/Unreal Projects/iosc415/Source/iosc415/iosc415.cpp:3:
UnrealBuildTool: In file included from /Volumes/Scratch Disk/Dropbox/Unreal Projects/iosc415/Source/iosc415/iosc415.h:6:
UnrealBuildTool: In file included from /Users/Shared/Epic Games/UE_4.15/Engine/Source/Runtime/Engine/Public/EngineMinimal.h:14:
UnrealBuildTool: In file included from /Users/Shared/Epic Games/UE_4.15/Engine/Source/Runtime/CoreUObject/Public/CoreUObject.h:9:
UnrealBuildTool: In file included from /Users/Shared/Epic Games/UE_4.15/Engine/Source/Runtime/Core/Public/Core.h:12:
UnrealBuildTool: In file included from /Users/Shared/Epic Games/UE_4.15/Engine/Source/Runtime/Core/Public/CoreMinimal.h:128:
UnrealBuildTool: In file included from /Users/Shared/Epic Games/UE_4.15/Engine/Source/Runtime/Core/Public/Math/VectorRegister.h:17:
UnrealBuildTool: /Users/Shared/Epic Games/UE_4.15/Engine/Source/Runtime/Core/Public/Math/UnrealMathNeon.h:902:35: error: use of undeclared identifier 'vcvt_f16_f32'
UnrealBuildTool:         float16x4_t f16x4 = (float16x4_t)vcvt_f16_f32(Vec);
UnrealBuildTool:                                          ^
UnrealBuildTool: In file included from /Volumes/Scratch Disk/Dropbox/Unreal Projects/iosc415/Intermediate/Build/IOS/UE4/Inc/iosc415/iosc415.generated.cpp:8:
UnrealBuildTool: In file included from /Users/Shared/Epic Games/UE_4.15/Engine/Source/Runtime/CoreUObject/Public/UObject/GeneratedCppIncludes.h:5:
UnrealBuildTool: In file included from /Users/Shared/Epic Games/UE_4.15/Engine/Source/Runtime/Core/Public/CoreMinimal.h:128:
UnrealBuildTool: In file included from /Users/Shared/Epic Games/UE_4.15/Engine/Source/Runtime/Core/Public/Math/VectorRegister.h:17:
UnrealBuildTool: /Users/Shared/Epic Games/UE_4.15/Engine/Source/Runtime/Core/Public/Math/UnrealMathNeon.h:902:35: error: use of undeclared identifier 'vcvt_f16_f32'
UnrealBuildTool:         float16x4_t f16x4 = (float16x4_t)vcvt_f16_f32(Vec);
UnrealBuildTool:                                          ^
UnrealBuildTool: In file included from /Volumes/Scratch Disk/Dropbox/Unreal Projects/iosc415/Source/iosc415/iosc415GameMode.cpp:3:
UnrealBuildTool: In file included from /Volumes/Scratch Disk/Dropbox/Unreal Projects/iosc415/Source/iosc415/iosc415.h:6:
UnrealBuildTool: In file included from /Users/Shared/Epic Games/UE_4.15/Engine/Source/Runtime/Engine/Public/EngineMinimal.h:14:
UnrealBuildTool: In file included from /Users/Shared/Epic Games/UE_4.15/Engine/Source/Runtime/CoreUObject/Public/CoreUObject.h:9:
UnrealBuildTool: In file included from /Users/Shared/Epic Games/UE_4.15/Engine/Source/Runtime/Core/Public/Core.h:12:
UnrealBuildTool: In file included from /Users/Shared/Epic Games/UE_4.15/Engine/Source/Runtime/Core/Public/CoreMinimal.h:128:
UnrealBuildTool: In file included from /Users/Shared/Epic Games/UE_4.15/Engine/Source/Runtime/Core/Public/Math/VectorRegister.h:17:
UnrealBuildTool: /Users/Shared/Epic Games/UE_4.15/Engine/Source/Runtime/Core/Public/Math/UnrealMathNeon.h:902:35: error: use of undeclared identifier 'vcvt_f16_f32'
UnrealBuildTool:         float16x4_t f16x4 = (float16x4_t)vcvt_f16_f32(Vec);
UnrealBuildTool:                                          ^
UnrealBuildTool: In file included from /Volumes/Scratch Disk/Dropbox/Unreal Projects/iosc415/Source/iosc415/iosc415Character.cpp:3:
UnrealBuildTool: In file included from /Volumes/Scratch Disk/Dropbox/Unreal Projects/iosc415/Source/iosc415/iosc415.h:6:
UnrealBuildTool: In file included from /Users/Shared/Epic Games/UE_4.15/Engine/Source/Runtime/Engine/Public/EngineMinimal.h:14:
UnrealBuildTool: In file included from /Users/Shared/Epic Games/UE_4.15/Engine/Source/Runtime/CoreUObject/Public/CoreUObject.h:9:
UnrealBuildTool: In file included from /Users/Shared/Epic Games/UE_4.15/Engine/Source/Runtime/Core/Public/Core.h:12:
UnrealBuildTool: In file included from /Users/Shared/Epic Games/UE_4.15/Engine/Source/Runtime/Core/Public/CoreMinimal.h:128:
UnrealBuildTool: In file included from /Users/Shared/Epic Games/UE_4.15/Engine/Source/Runtime/Core/Public/Math/VectorRegister.h:17:
UnrealBuildTool: /Users/Shared/Epic Games/UE_4.15/Engine/Source/Runtime/Core/Public/Math/UnrealMathNeon.h:902:35: error: use of undeclared identifier 'vcvt_f16_f32'
UnrealBuildTool:         float16x4_t f16x4 = (float16x4_t)vcvt_f16_f32(Vec);
UnrealBuildTool:                                          ^
UnrealBuildTool: 1 error generated.
UnrealBuildTool: 1 error generated.
UnrealBuildTool: 1 error generated.
UnrealBuildTool: 1 error generated.
UnrealBuildTool: ERROR: UBT ERROR: Failed to produce item: /Volumes/Scratch Disk/Dropbox/Unreal Projects/iosc415/Binaries/IOS/iosc415
UnrealBuildTool: Total build time: 22.13 seconds (Local executor: 0.00 seconds)
CommandUtils.Run: Run: Took 22.808353s to run mono, ExitCode=5
Program.Main: ERROR: AutomationTool terminated with exception: AutomationTool.CommandUtils+CommandFailedException: Command failed (Result:5): /Users/Shared/Epic Games/UE_4.15/Engine/Binaries/DotNET/UnrealBuildTool.exe iosc415 IOS Development -Project="/Volumes/Scratch Disk/Dropbox/Unreal Projects/iosc415/iosc415.uproject"  "/Volumes/Scratch Disk/Dropbox/Unreal Projects/iosc415/iosc415.uproject"  -remoteini="/Volumes/Scratch Disk/Dropbox/Unreal Projects/iosc415" -noxge -nocreatestub -NoHotReload -ignorejunk. See logfile for details: 'UnrealBuildTool-2017.03.29-10.19.33.txt'
  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, AutomationTool.SpewFilterCallbackType SpewFilterCallback) [0x00000] in <filename unknown>:0
  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, AutomationTool.SpewFilterCallbackType SpewFilterCallback) [0x00000] in <filename unknown>:0
  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
  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.Dictionary`2 EnvVars) [0x00000] in <filename unknown>:0
  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.Collections.Generic.Dictionary`2 EnvVars) [0x00000] in &lt;filename unknown&gt;:0
  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, Nullable`1 InChangelistNumberOverride, System.Collections.Generic.Dictionary`2 InTargetToManifest) [0x00000] in &lt;filename unknown&gt;:0
  at Project.Build (AutomationTool.BuildCommand Command, AutomationTool.ProjectParams Params, Int32 WorkingCL, ProjectBuildTargets TargetMask) [0x00000] in &lt;filename unknown&gt;:0
  at BuildCookRun.DoBuildCookRun (AutomationTool.ProjectParams Params) [0x00000] in &lt;filename unknown&gt;:0
  at BuildCookRun.ExecuteBuild () [0x00000] in &lt;filename unknown&gt;:0
  at AutomationTool.BuildCommand.Execute () [0x00000] in &lt;filename unknown&gt;:0
  at AutomationTool.Automation.Execute (System.Collections.Generic.List`1 CommandsToExecute, Tools.DotNETCommon.CaselessDictionary.CaselessDictionary`1 Commands) [0x00000] in &lt;filename unknown&gt;:0
  at AutomationTool.Automation.Process (System.String] Arguments) [0x00000] in &lt;filename unknown&gt;:0
  at AutomationTool.Program.MainProc (System.Object Param) [0x00000] in &lt;filename unknown&gt;:0
  at AutomationTool.InternalUtils.RunSingleInstance (System.Func`2 Main, System.Object Param) [0x00000] in <filename unknown>:0
  at AutomationTool.Program.Main () [0x00000] in <filename unknown>:0
Program.Main: AutomationTool exiting with ExitCode=5 (5)
RunUAT ERROR: AutomationTool was unable to run successfully.



The same problem here. Xcode 8.3.

I’m getting the error that’s being thrown in Engine/Source/Runtime/Core/Public/Math/UnrealMathNeon.h when trying to package for iOS. I’ve opened a bug report on AnswerHub here: https://answers.unrealengine.com/questions/583010/error-in-unrealmathneonh-when-packaging-for-ios.html

If anyone else is having that specific problem, please comment on the AnswerHub post so Epic knows how widespread the problem is. Really need this to get fixed. Thanks!

Edit: Forgot to mention, I’m running UE 4.15.1 on macOS 10.12.3, and Xcode 8.3.

I discovered the issue was with Xcode 8.3. Since there’s an update to the clang compiler in 8.3, I’m guessing that’s the culprit.

The workaround for now is to compile with Xcode 8.2.1. I was able to get a build to compile in 8.2.1, upload it to iTunes Connect, push a test build through TestFlight, and successfully launch the game on an iPhone.

In case anyone’s not familiar with how to change what version of Xcode is used to compile a UE4 project, I wrote up a tutorial on my studio’s website about how to do that: https://nacellegames.com/blog/2017/3/31/how-to-change-what-xcode-versions-for-compiling-unreal-engine-4-cpp-projects

Hope that helps! I’ll also be posting about this on the AnswerHub page.

Bypass Error in 8.3

Yuck. Got this same compile error tonight while building. I’m @ 8.3 on 10.12.4 w/UE 4.15.1

Commented out essentially the whole culprit method. Let’s see what happens (it compiled and is now cooking) ! :p:

/Users/Shared/Epic\ Games/UE_4.15/Engine/Source/Runtime/Core/Public/Math/UnrealMathNeon.h is the path.



template <bool bAligned>
FORCEINLINE void VectorStoreHalf4(VectorRegister Vec, void* RESTRICT Ptr)
{
	/*float16x4_t f16x4 = (float16x4_t)vcvt_f16_f32(Vec);
	if (bAligned)
	{
		vst1_u8( (uint8_t *)Ptr, f16x4 );
	}
	else
	{
		uint32_t buf[2];
		vst1_u8( (uint8_t *)buf, f16x4 );
		*(uint32_t *)Ptr = buf[0]; 
	}*/
}


Can someone in 8.2.1 right click vcvt_f16_f32 and give me definition? We could create our own implementation.

Update…
Update for 8.3.1 came out on 4/6 and still gives me errors for vcvt_f16_f32.

Commenting out VectorStoreHalf4 function above is solving my problem for now. That is of course until I actually use it and my shi&t blows up! But so far so good.

I just got the same error on my attempt to build for iOS as well. Will look into downgrading to Xcode 8.2 as I absolutely need to have this working very soon.

This is affecting me as well :frowning:

grrrr vcvt_f16_f32!

Hey everyone… I am having this issue as well. I changed the version of Xcode and it compiled and created an IPA. However, the IPA shows up in iTunes as an iPhone App instead of Universal. It also won’t load to any devices. It looks like it is going to load, but the sync finishes without any change to the device. That device was an iPhone with 10.3.1. Now, I tried to load it to an iPad with 10.2.1 and it tells me that it needs a higher version of iOS. Both of these devices were working prior to this issue. I now have a project that I can’t test on either of these devices, even using Xcode 8.2.1. Any suggestions would be great at this point. Thanks!

Possible Work around?

Modified UnrealMathNeon.h and put this in. For some reason vcvt_f16_f32 is no longer available. So I’m thinking that assigning f16x4[0…3] to Vec[0…3] may function correctly
Since it’s a vector that stores 4 floats, if I’m not mistaken. Could be really wrong, but it seems to compile for mobile with this fine.:


template <bool bAligned>
FORCEINLINE void VectorStoreHalf4(VectorRegister Vec, void* RESTRICT Ptr)
{
	float16x4_t f16x4;

	for (int x=0;x<4;x++)
	{
		f16x4[x] = Vec[x];
	}

	if (bAligned)
	{
		vst1_u8( (uint8_t *)Ptr, f16x4 );
	}
	else
	{
		uint32_t buf[2];
		vst1_u8( (uint8_t *)buf, f16x4 );
		*(float32_t *)Ptr = buf[0]; 
	}
}

In UE 4.15.2 this issue will be resolved :slight_smile:

https://forums.unrealengine.com/showthread.php?140982-Can-t-Deploy-C-Project-on-iOS&p=694012&viewfull=1#post694012 It works for me