Packaging for IOS fails

Hey.

I set up my both provision and certificate files. Also edited bundle identifier and project name from project settings. But whenever i try to build my project to IOS it fails. Packaging to android works without any problem on this project. I also tried to package Tappy chicken too, but it gives me same error too. (Using 4.6.1). Here is the end lines of my output log. I’m using blueprint based project with no code involved on windows 8.1 and launcher version of unreal engine 4.6.1

BuildCommand.Execute: ERROR: BUILD FAILED
MainFrameActions: Packaging (iOS): Program.Main: ERROR: AutomationTool terminated with exception:
MainFrameActions: Packaging (iOS): Program.Main: ERROR: Exception in mscorlib: Could not find a part of the path 'f:\program files\unreal engine\4.6\engine\ıntermediate\uat\ıos\ue4commandline.txt'.
MainFrameActions: Packaging (iOS): Stacktrace:    at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
MainFrameActions: Packaging (iOS):    at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolea
MainFrameActions: Packaging (iOS): n checkHost)
MainFrameActions: Packaging (iOS):    at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)
MainFrameActions: Packaging (iOS):    at System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize, Boolean checkHost)
MainFrameActions: Packaging (iOS):    at System.IO.File.InternalWriteAllText(String path, String contents, Encoding encoding, Boolean checkHost)
MainFrameActions: Packaging (iOS):    at Project.WriteStageCommandline(String IntermediateCmdLineFile, ProjectParams Params, DeploymentContext SC)
MainFrameActions: Packaging (iOS):    at Project.CopyBuildToStagingDirectory(ProjectParams Params)
MainFrameActions: Packaging (iOS):    at BuildCookRun.DoBuildCookRun(ProjectParams Params)
MainFrameActions: Packaging (iOS):    at BuildCommand.Execute()
MainFrameActions: Packaging (iOS):    at AutomationTool.Automation.Execute(List`1 CommandsToExecute, CaselessDictionary`1 Commands)
MainFrameActions: Packaging (iOS):    at AutomationTool.Automation.Process(String[] CommandLine)
MainFrameActions: Packaging (iOS):    at AutomationTool.Program.MainProc(Object Param)
MainFrameActions: Packaging (iOS):    at AutomationTool.InternalUtils.RunSingleInstance(MainProc Main, Object Param)
MainFrameActions: Packaging (iOS):    at AutomationTool.Program.Main()
MainFrameActions: Packaging (iOS): Program.Main: ERROR: Could not find a part of the path 'f:\program files\unreal engine\4.6\engine\ıntermediate\uat\ıos\ue4commandline.txt'.
MainFrameActions: Packaging (iOS): ProcessManager.KillAll: Trying to kill 0 spawned processes.
MainFrameActions: Packaging (iOS): Program.Main: AutomationTool exiting with ExitCode=1
MainFrameActions: Packaging (iOS): Domain_ProcessExit
MainFrameActions: Packaging (iOS): ProcessManager.KillAll: Trying to kill 0 spawned processes.
MainFrameActions: Packaging (iOS): copying UAT log files...
MainFrameActions: Packaging (iOS): RunUAT.bat ERROR: AutomationTool was unable to run successfully.
MainFrameActions: Packaging (iOS): BUILD FAILED

Hi,

I was just looking at the code from the callstack above and I think I see a possible bug in it. I’ll see if I can reproduce it in some way and verify it could be the problem.

-Pete

Ok thanks Pete, i’ll wait for an answer, i can try if my project builds with 4.7 preview after i download it. Even though i don’t want to use preview version.

Hey again Pete,

I’m still waiting for a response because my client is waiting for my IOS build too. It’s a finished project, built for mobile, there was no problem about packaging for android and delivered it on time, but for IOS build still need to hear from Epic.

Can you try building/packaging on a Mac? If not, can you make sure this directory exists:

f:\program files\unreal engine\4.6\engine\ıntermediate\uat\ıos

Unfortunately, I have been unable to reproduce this issue. I believe the problem stems from some code which is not trying to look for a lower case version of the file, but on a PC that shouldn’t be an issue as the OS isn’t really case sensitive. If you have the code from GitHub, you can try my potential fix. Around line 1049 of CopyBuildToStagingDirectory.Automation.cs, it calls GetIntermediateCommandlineDir(SC) as part of a call to Directory.CreateDirectory, that should really be Path.GetDirectoryName(IntermediateCmdLineFile) which has already been lower-cased. The same change would be needed at 1060. If you don’t have access to GitHub, then try the latest 4.7 preview and see if it works.

Thanks for fast response. Yes i have that folder, but there was no ue4commandline.txt on there. I tried to create myself it as a blank (didn’t work), tried to copy from android content but didn’t work either.

Unfortunately i don’t have a mac or chance to try on that. I have access to github, but can i build my project with source code version of ue4 on windows? If i can, i’ll try that too. Or the last thing i can do is try my chance with 4.7 preview version.

I guess you haven’t launch the game on ios on the devices before you packed. i have this problem before. Build Launch and pack for final. And i also found out you said import 2 provision file together it will cash which is in my other post. You have to pack it with 1 provision file at one time in order to finish otherwise. If you import the development and replace by distro it will build fail or pack fail. Or if you want to success you have to select the shipping and pack. coz you said you did import both provision file and the last one was the distro i guess.I did pack a few time and the result was the game engine don’t read the development after i import the distro provision file even i pack with development.

I still haven’t meet a stuff understand this problem.
Here is my post.

Is the folder all lower case like in the log from above?

Ohh, it’s not.

F:\Program Files\Unreal Engine\4.6\Engine\Intermediate\UAT\IOS

Should i change only ios part or uat and intermadiate too? Because android and pc builds work without any problem with this names.

nope, leave it the way it is. Are you able to create a file there? If not, this could just be a permissions issue. Although, it seems odd that Android would work and not this if that was the case.

Yes, because there was no file named ue4commandline.txt but i created it. Changing “IOS” to “ios” didn’t change anything, it still gives the same error. I tried both with blank folder and blank ue4commandline.txt but no luck. I think i really should consider to try it with 4.7 preview version even though i hate to use preview versions.

Well, at least it would give us a data point on whether or not it has been fixed. Let me look at the changes made since 4.6 and see if there is anything that jumps out.

-Pete

So looking through the changes, I notice there was a change after 4.6 shipped which moved to using ToLowerInvariant to lower-case the files. That fixed an issue with some non-English cultures having the I (in IOS) change to a different non-English character. I believe you are encountering that issue. You might be able to “fix” this temporarily by changing the default locale of your PC to utilize English instead of the current setting. You can do this by going in to the Control Panel, selecting Clock, Language, Region, and then selecting the Region and Language link there. On that dialog, select the Formats tab and change the Format to English (United States). That might fix the problem for now and it has definitely been resolved in 4.7. Obviously, if you already set to English, then this may not be the issue.

-Pete

Actually i tried to launch first but it gave me the same error. After that i changed my provision and certificate file a lot to be sure about that. I played with almost every setting for packaging, xml files for ios packaging but didn’t work. But now, WOW, changing my format to English made the job :slight_smile: And i stopped download of 4.7 preview (Hehe i really hate preview versions)

Yes, it worked and packaged without any problem when i change my format to English. I even deleted my language from windows to be sure :slight_smile: Now it works. Happy to hear it’s fixed on 4.7 too.

Thanks Pete.

i got no clue yet. I thought this game engine only available for download in English version. Otherwise the addition language pack.

What region did you set for final USA?
I have been a few cash and reinstall the whole stuff.
i am using the other region before but i still can pack the stuff. I still have disto problem.

so you did successful import distro and development. BOth of them pack development, then shipping for distribution is it?

I’m using English language for my windows, but region is still my region. I just changed format to English too and it worked. I use all of my softwares in English but i didn’t even realize my format is set to “My Language”.

Yes i set it the English (USA) as Pete said. Changing it fixed everything for me. Now how can i set his comment as answer? I only have option to set my comments as answers. (answerhub noob here, sorry)