Cannot package a plugin in 4.15(Mac)

Cannot package any plugins in 4.15 on mac osx. If I switch back to 4.14, plugins complete the packaging process just fine. Even tried new c++ project, create new plugin, package and it fails.

Here’s the log I get in UE4 editor:

UATHelper: Package Plugin Task (Mac): Running AutomationTool...
UATHelper: Package Plugin Task (Mac): Setting up Mono
UATHelper: Package Plugin Task (Mac): Compiling AutomationTool with xbuild
UATHelper: Package Plugin Task (Mac): xbuild Source/Programs/AutomationTool/AutomationTool.csproj /p:Configuration=Development /p:Platform=AnyCPU /verbosity:quiet /nologo /p:TargetFrameworkProfile=
UATHelper: Package Plugin Task (Mac): /Users/Shared/Epic Games/UE_4.15/Engine/Binaries/ThirdParty/Mono/Mac/lib/mono/4.5/Microsoft.CSharp.targets: error : Error executing tool '/Users/Shared/Epic Games/UE_4.15/Engine/Binaries/ThirdParty/Mono/Mac/lib/mono/4.5/mcs.exe': ApplicationName='/Users/Shared/Epic Games/UE_4.15/Engine/Binaries/ThirdParty/Mono/Mac/lib/mo
no/4.5/mcs.exe', CommandLine='/noconfig @/var/folders/vf/264x94v956v84kymwgjj5hc40000gn/T/tmp6505a7e2.tmp', CurrentDirectory='/Users/Shared/Epic Games/UE_4.15/Engine/Source/Programs/DotNETCommon/DotNETUtilities', Native error= Cannot find the specified file
UATHelper: Package Plugin Task (Mac): /Users/Shared/Epic Games/UE_4.15/Engine/Binaries/ThirdParty/Mono/Mac/lib/mono/4.5/Microsoft.CSharp.targets: error : Error executing tool '/Users/Shared/Epic Games/UE_4.15/Engine/Binaries/ThirdParty/Mono/Mac/lib/mono/4.5/mcs.exe': ApplicationName='/Users/Shared/Epic Games/UE_4.15/Engine/Binaries/ThirdParty/Mono/Mac/lib/mo
no/4.5/mcs.exe', CommandLine='/noconfig @/var/folders/vf/264x94v956v84kymwgjj5hc40000gn/T/tmp1a123713.tmp', CurrentDirectory='/Users/Shared/Epic Games/UE_4.15/Engine/Source/Programs/UnrealBuildTool', Native error= Cannot find the specified file
UATHelper: Package Plugin Task (Mac): /Users/Shared/Epic Games/UE_4.15/Engine/Binaries/ThirdParty/Mono/Mac/lib/mono/4.5/Microsoft.CSharp.targets: error : Error executing tool '/Users/Shared/Epic Games/UE_4.15/Engine/Binaries/ThirdParty/Mono/Mac/lib/mono/4.5/mcs.exe': ApplicationName='/Users/Shared/Epic Games/UE_4.15/Engine/Binaries/ThirdParty/Mono/Mac/lib/mo
no/4.5/mcs.exe', CommandLine='/noconfig @/var/folders/vf/264x94v956v84kymwgjj5hc40000gn/T/tmp1f7e1706.tmp', CurrentDirectory='/Users/Shared/Epic Games/UE_4.15/Engine/Source/Programs/AutomationTool/AutomationUtils', Native error= Cannot find the specified file
UATHelper: Package Plugin Task (Mac): _wapi_handle_unref_full: Attempting to unref unused handle 0x2852
UATHelper: Package Plugin Task (Mac): _wapi_handle_unref_full: Attempting to unref unused handle 0x2866
UATHelper: Package Plugin Task (Mac): RunUAT ERROR: AutomationTool failed to compile.

Hi ,

I tried packaging a 4.15.1 code project with a plugin on Mac and it packaged and ran successfully for me. Would it be possible to get the new test project that you created? Also, what are your packaging settings?

Hi , thanks a lot for taking a look at this. I just tested in 4.15.1 and it still fails. I’m not adding any code, just creating a new plugin and then packaging it (the plugin, not the full game) and it fails with this error:

RunUAT ERROR: AutomationTool failed to compile.

I have Xcode 8.2.1 installed on my mac.

Sorry, I misunderstood that you were packaging the plugin itself, not the project plus the plugin. What type of plugin did you test this with? I tried using a Blueprint Library plugin, and it packaged fine for me on a Mac (using Xcode 8.2.1). Also, did you build the Engine from source code, or are you using the binary Engine installed through the Launcher?

Hi ,
I created a new c++ project, then created a new blank plugin in the plugins window. After the plugin creation it tells me that I need to restart the editor, I do so.
After restarting I can see my plugin in the plugins window, every thing looks good, my plugin doesn’t do anything it’s a blank plugin, then I try to package this blank plugin like I would if I was going to sell the plugin in the marketplace as an engine plugin. The packaging process fails.
I tried the same with a basic window and menu bar button plugin and the same happens even tough the plugin works as it should (adds a button which opens the blank window).
I’m using the launcher version of the engine.
Same process works in 4.14.3 also from the launcher.

It still seems to be working fine for me in 4.15.1. Would it be possible to get the test project and plugin that you were using?

Sure thing, here you go Dropbox - File Deleted
There’s nothing strange about the project, I literally just created a new c++ project without any code or content, then created a new blank project and also didn’t added anything to it. It’s looking like something to do with my Xcode build environment, maybe something changed in 4.15 and failed to update my developer environment when it installed. If it’s any help I recall disabling indexing on Xcode because it was eating all my ram and crashing my system.
Is 4.15.1 compatible with Xcode 8.3? I might give that a try

Packaging the plugin in the sample project that you provided also works for me. I was using Xcode 8.2.1. I do not believe we officially support 8.3 yet, but that will be coming soon.

What location were you trying to package the plugin to? I was testing by packaging it to an empty folder on the desktop. Also, is the log you provided in your initial post the entire log that is provided?

Just want to add that we are having precisely the same problem as of 4.15. Upgrading to latest Xcode and 4.15.1 has not helped.

Can I confirm , that you are testing this by packaging a plugin via the automation tool? Ie. RunUAT.sh BuildPlugin -Plugin=[uplugin-path] -TargetPlatforms=Mac -Package=[output-path] -Rocket.

Even just selecting the ‘Generate Xcode Project’ option on a uproject file in 4.15 generates a similar error in the terminal, although it doesn’t prevent that command from succeeding.

Hi ,

I had been packaging the plugin through the Plugins window in the Editor. I tried packaging by calling the automation tool through the Terminal as you suggested, and that also completed successfully for me. I also did not see any errors or warnings in the Terminal when choosing the Generate Xcode Project option.

@, thanks for sharing, good to know I’m not alone on this. @ the log on the original post was the one I got on 4.15 on the project I shared with you there’s a file with the log I got on 4.15.1 and a video showing it fail on my system. I’m not on my mac (won’t be for the rest of the week), but I recall looking at the log on 4.14 and there being a difference in one of the paths of a mono process that’s being called. @ can you share your log from 4.14? I’m seriously thinking something changed in the build process and somehow the installation failed to update our dev environments.

Unfortunately I don’t have constant access to the Mac as I’ve done this work via remote login. For now we’ve got around this issue by just building the plugin in-place in the development project, then copying out the resulting binaries.

If I get to test again on 4.14 I’ll try to update here with info.

Same identical problem here: UE 4.15.1, Xcode 8.3.2, macOS Sierra 10.12.4. The same script is successfully used to pre-package the C++ plugin under Windows, for both UE 4.14 and 4.15. Under Mac it works for UE 4.14, but fails with the same logs when used with UE 4.15.

Command line used:

/Users/Shared/Epic\ Games/UE_4.15/Engine/Build/BatchFiles/RunUAT.sh BuildPlugin -Rocket -Plugin=[abs path to .uplugin] -Package=[abs path to out dir]

Turns out I cannot package the game for Mac either, Here’s the log I get Dropbox - File Deleted - Simplify your life

However everything works on 4.14, here’s the log: Dropbox - File Deleted - Simplify your life

No need to scroll down far, the error is simple, in 4.15 the Start UAT command fails and that’s it for the packaging process, however in 4.14 it’s successful and the packaging process is able to continue as expected.

Here’s the error right before the packaging process fails on 4.15:

Cannot open assembly ‘AutomationTool.exe’: No such file or directory.

Looking online for this error yields some results from people with similar issues using editors built from source. I’m using the launcher version.

Also looking at the file structure seems like the editor is installing its files in a different path than before.

Before it was:
Users/Shared/UnrealEngine/4.14/Engine/Binaries/DotNet
Inside this folder the AutomationTool.exe file is located.

Now it is:
Users/Shared/EpicGames/UE_4.15/Engine/Binaries/DotNet
Inside this folder there is no sign of the AutomationTool.exe, there’s a AutomationTool.exe.config but not the .exe

So my suspicions of something messed up with our dev environments is more likely, specially when the 4.15 release notes states changes in the c++ build process or the fact that the default path changed. The thing is I’m not that familiar with environmental variables and paths to try to fix it myself other than maybe reinstalling my system from a fresh install which would be a drag.

@ and @, can you package your games to Mac? Also can you guys verify your folder structure and if the AutomationTool.exe is present in the Binaries/DotNet folder?

I’m downloading 4.16 preview 1 to see what happens there.

In 4.16 I’m able to package the game but not plugins, same error.

Here’s the log

Unfortunately I can’t test a game build under Mac. But I confirm that the file “AutomationTool.exe” is missing from UE4.15, while it appears in two directories under UE4.14 (Engine/Binaries/DotNET/ and /Engine/Source/Programs/AutomationTool/obj/Deleopment).

I just wanted to check in on this issue again. Are you still having trouble with this? I am still unable to reproduce the issue on our Mac here, and the AutomationTool.exe file that you have mentioned is missing is present in both 4.15 and 4.16 for me. I have not yet been able to determine why my installation appears to be slightly different from yours.

Still having the issue, like others commented seems like I’m not alone. I suspect the AutomationTool.exe gets compiled and added to the folder the first time it’s needed and in our dev environments this compilation is failing and because the file is not there the packaging process cannot move past this.

Yes, just tried now with v4.15.2.

The AutomationTool.exe file should be included when the Engine is installed. I ran a quick test on my installation where I deleted the AutomationTool.exe file from the Engine, then ran Verify in the Launcher, and that re-downloaded the AutomationTool.exe file. So I think the missing file in your installation does contribute to this issue, but the big question is why that particular file is not being included when you install the Engine on your Mac while it is included for me.

Would it be possible to get the system information for your Mac so I can compare it to what I am using here?