[4.10.0] iOS Remote build doesn't handle missing Binary/iOS folders in plugins

So we are in mid upgrade to 4.10 and have a fresh branch we are building iOS executables in.
When attempting to Build the binary I get the following error:

1>  Compiling with these architectures: armv7,arm64
1>  BatchFileInfo version 1 took 00:00:00.1180068
1>EXEC : error : System.IO.DirectoryNotFoundException: Could not find a part of the path 'xxx\Engine\Plugins\Blendables\LightPropagationVolume\Binaries\IOS'.
1>     at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
1>     at System.IO.FileSystemEnumerableIterator`1.CommonInit()
1>     at System.IO.FileSystemEnumerableIterator`1..ctor(String path, String originalUserPath, String searchPattern, SearchOption searchOption, SearchResultHandler`1 resultHandler, Boolean checkHost)
1>     at System.IO.Directory.InternalGetFileDirectoryNames(String path, String userPathOriginal, String searchPattern, Boolean includeFiles, Boolean includeDirs, SearchOption searchOption, Boolean checkHost)
1>     at System.IO.Directory.InternalGetFiles(String path, String searchPattern, SearchOption searchOption)
1>     at UnrealBuildTool.RemoteToolChain.PreBuildSync() in xxx\Engine\Source\Programs\UnrealBuildTool\ToolChain\RemoteToolChain.cs:line 706
1>     at UnrealBuildTool.IOSToolChain.PreBuildSync() in xxx\Engine\Source\Programs\UnrealBuildTool\IOS\IOSToolChain.cs:line 910
1>     at UnrealBuildTool.UnrealBuildTool.RunUBT(String[] Arguments) in xxx\Engine\Source\Programs\UnrealBuildTool\System\UnrealBuildTool.cs:line 1994

Long story short, as the branch is fresh, we have no checked in binaries, so no Binaries\IOS folder exists for it to copy. (We use Perforce, and it does not store empty folders on the server)

I can get around this by creating the folder manually on my Windows PC, however this means every new checkout we do we need to manually create folders which the build shouldn’t even need.

Shouldn’t the copy be checking the folder exists before attempting the copy?

Hey ,

It looks as though you’re not using Rsync or SSH. It’s highly suggested that you switch when you’re able to. As you’re less likely to run into complications. Also, our iOS developer looked over the information you provided and it looks as though it’s dependent upon that folder specifically. Is it possible that it was set up to be dependent on those folders?

Thanks!

Hey ,

Yes, I’m currently in the middle of making the switch to RSync.
It has it’s own set of issues. :stuck_out_tongue:

As for the dependency on those folders: I haven’t set up any specific folders to be copied across. This is just the default behaviour I’m seeing on our machines.
I created and compiled the 3rd person template without any changes and had the exact same issue.
As a quick repro you should be able to go into Engine\Plugins\Blendables\LightPropagationVolume and delete the binaries folder to see the behaviour I’m getting.

This is a 4.10 specific issue, I wasn’t getting these errors in 4.9.1.

I should also note that we’re using the Git version of the engine.

The URT version for remote compiling is deprecated and not being actively worked on as of 4.8. If this is occurring with the Rsync/SSH build then we will look in to it, but I haven’t seen it at all and have built from 4 different fresh branches in the last two weeks (as we switched to a different branch scheme internally).

Post the issues you are seeing with the SSH tool chain so we can get them addressed for the next release or sooner.

-Pete