[4.18.1] Iphone launch / packaging fails with System.FormatException: Unknown char at at UnrealBuildTool.IOSExports.SupportsIconCatalog
No longer possible to launch on iPhone after upgrade from 4.18.0 to 4.18.1. This is a major blocker for me since I'm working with AR and need to test on the phone rather than in a simulator.
Seems that Iphone packaging fails with System.FormatException: Unknown char at at UnrealBuildTool.IOSExports.SupportsIconCatalog This seems to be happening while creating a plist during IOSPlatform.GetFilesToDeployOrStage and BuildCookRun.DoBuildCookRun
Steps to reproduce:
New project -> Blueprint -> First Person starter content with Mobile/Tablet, Maximum Quality and With starter content
Add IOS certificates in project settings and click Launch (on iPhone).
xxx UPDATE xxx:
Seems to be related to the code here https://github.com/EpicGames/UnrealEngine/blob/dbced2dd59f9f5dfef1d7786fd67ad2970adf95f/Engine/Source/Programs/UnrealBuildTool/Platform/IOS/IOSExports.cs The exception is probably thrown while reading additional properties. The only place where I've found those in my project are in a file Binaries/IOS/[projectname].target In that file it says:
So somewhere in the system the SDK is reported as 11,2 with a comma, I think that might be related to the parsing failure. And even if it didn't fail it would probably parse the wrong number since comma means something else. Might have something to do with me running Swedish locale on my Mac since In Swedish comma means decimal delimiter.
I changed the locale of the Mac to English (US) and then it started working again. So probably Xcode have started reporting the SDK version with localized decimal delimiters. Since I normally have Swedish locale the SDK version became 11,2 with a comma which Unreal tries to parse and fails since it probably parses without localization configuration, e.g. uses dot as decimal delimiter. That's what I think happens anyways. So the question is where the SDK version is collected from, is it from Xcode, and is Xcode gonna keep on reporting the version in localized form? If that is the case, Unreal should probably also parse it in localized form at line 132 here https://github.com/EpicGames/UnrealEngine/blob/dbced2dd59f9f5dfef1d7786fd67ad2970adf95f/Engine/Source/Programs/UnrealBuildTool/Platform/IOS/IOSExports.cs
Maybe use something like the below instead?
Super big thanks for this post. Had the same problem with W10 (Finnish), changed to English and works great!
answered Nov 23 '17 at 07:47 PM
This post helped me produce a bug fix for the issue, and I have opened a pull-request on the Epic Unreal Engine repo on Github. The pull request has been approved, but are not yet implemented in any release as of yet (currently 4.22). If you are a member of the UE4 repo, you can take a look at the pull request on: https://github.com/EpicGames/UnrealEngine/pull/5825
answered Jun 11 '19 at 01:16 PM
Follow this question
Once you sign in you will be able to subscribe for any updates here