Packaging for Mac - JSON Parse Exception FMODStudio.uplugin

Hey all

Just wondering if anyone can help with this. I’m trying to package a game for Mac on UE4.26 with FMOD Studio integration tool 2.02.07. I’ve also tried UE4.27 and 2.02.08. I’ve additionally tried two different macs to build it on (one on Big Sur and one on Catalina). I’ve also tried moving the integration into the game folder instead, but that gave the same error. I’ve set up the packaging settings as in the documentation and everything runs fine in the editor itself. FMOD validates fine too.

I’m running into a RunUAT error. This is in some way related to FMOD - when I remove the FMOD plugin, the game builds successfully.

I couldn’t find much on this from searching around, anyone got any ideas of what to try?
Thanks!

Error log (specific line that is causing the error is highlighted):

Running AutomationTool…
Running bundled mono, version: Mono JIT compiler version 5.16.0.220 (2018-06/bb3ae37d71a Fri Nov 16 17:12:11 EST 2018)
Start UAT: mono AutomationTool.exe -ScriptsForProject=/Volumes/SSK Storage/Unreal Projects/LostInSpace427/LostInSpace427.uproject BuildCookRun -project=/Volumes/SSK Storage/Unreal Projects/LostInSpace427/LostInSpace427.uproject -noP4 -clientconfig=Development -serverconfig=Development -nocompile -nocompileeditor -installed -ue4exe=/Volumes/SSK Storage/Unreal Engine B/UE_4.27/Engine/Binaries/Mac/UE4Editor.app/Contents/MacOS/UE4Editor -utf8output -platform=Mac -targetplatform=Mac -ini:Game:[/Script/UnrealEd.ProjectPackagingSettings]:BlueprintNativizationMethod=Disabled -build -cookonthefly -nokill -map= -compressed -stage -deploy -cmdline= -Messaging -device=MacNoEditor@computer.local -addcmdline=-SessionId=5625ACECE74903F02A042CB17DF45FBB -SessionOwner=‘name’ -SessionName=‘computer.local’ -run
Parsing command line: -ScriptsForProject=“/Volumes/SSK Storage/Unreal Projects/LostInSpace427/LostInSpace427.uproject” BuildCookRun -project=“/Volumes/SSK Storage/Unreal Projects/LostInSpace427/LostInSpace427.uproject” -noP4 -clientconfig=Development -serverconfig=Development -nocompile -nocompileeditor -installed -ue4exe=“/Volumes/SSK Storage/Unreal Engine B/UE_4.27/Engine/Binaries/Mac/UE4Editor.app/Contents/MacOS/UE4Editor” -utf8output -platform=Mac -targetplatform=Mac -ini:Game:[/Script/UnrealEd.ProjectPackagingSettings]:BlueprintNativizationMethod=Disabled -build -cookonthefly -nokill -map= -compressed -stage -deploy -cmdline=" -Messaging" -device=MacNoEditor@computer.local -addcmdline="-SessionId=5625ACECE74903F02A042CB17DF45FBB -SessionOwner=‘name’ -SessionName=‘computer.local’ " -run
Using xbuild. Install Mono 5.0 or greater for faster builds!
Setting up ProjectParams for /Volumes/SSK Storage/Unreal Projects/LostInSpace427/LostInSpace427.uproject

ERROR: Tools.DotNETCommon.JsonParseException: Unable to parse /Volumes/SSK Storage/Unreal Engine B/UE_4.27/Engine/Plugins/FMODStudio/._FMODStudio.uplugin: Could not find token at index 0

     at Tools.DotNETCommon.JsonObject.Read (Tools.DotNETCommon.FileReference File) [0x0002e] in <3df9cebb56754a2daef3c3e72392d4c2>:0
     at UnrealBuildTool.PluginDescriptor.FromFile (Tools.DotNETCommon.FileReference FileName) [0x00000] in <d532141a9e4a466493d8ab7d63b86b72>:0
     at UnrealBuildTool.PluginInfo..ctor (Tools.DotNETCommon.FileReference InFile, UnrealBuildTool.PluginType InType) [0x0003a] in <d532141a9e4a466493d8ab7d63b86b72>:0
     at UnrealBuildTool.Plugins.ReadPluginsFromDirectory (Tools.DotNETCommon.DirectoryReference RootDirectory, System.String Subdirectory, UnrealBuildTool.PluginType Type) [0x00062] in <d532141a9e4a466493d8ab7d63b86b72>:0
     at UnrealBuildTool.Plugins.ReadEnginePlugins (Tools.DotNETCommon.DirectoryReference EngineDirectory) [0x00000] in <d532141a9e4a466493d8ab7d63b86b72>:0
     at UnrealBuildTool.Plugins.ReadAvailablePlugins (Tools.DotNETCommon.DirectoryReference EngineDir, Tools.DotNETCommon.DirectoryReference ProjectDir, System.Collections.Generic.List`1[T] AdditionalDirectories) [0x00006] in <d532141a9e4a466493d8ab7d63b86b72>:0
     at AutomationTool.ProjectUtils.RequiresTempTarget (Tools.DotNETCommon.FileReference RawProjectPath, System.Boolean bProjectHasCode, UnrealBuildTool.UnrealTargetPlatform Platform, UnrealBuildTool.UnrealTargetConfiguration Configuration, UnrealBuildTool.TargetType TargetType, System.Boolean bRequiresAssetNativization, System.Boolean bRequiresCookedData, System.String& OutReason) [0x000c3] in <538229d5ae744bf38e5a5850079734b9>:0
     at AutomationTool.ProjectUtils.RequiresTempTarget (Tools.DotNETCommon.FileReference RawProjectPath, System.Collections.Generic.List`1[T] Platforms, System.Collections.Generic.List`1[T] Configurations, System.Boolean AssetNativizationRequested) [0x0002f] in <538229d5ae744bf38e5a5850079734b9>:0
     at AutomationTool.ProjectUtils.DetectProjectProperties (Tools.DotNETCommon.FileReference RawProjectPath, System.Collections.Generic.List`1[T] ClientTargetPlatforms, System.Collections.Generic.List`1[T] ClientTargetConfigurations, System.Boolean AssetNativizationRequested) [0x0011e] in <538229d5ae744bf38e5a5850079734b9>:0
     at AutomationTool.ProjectUtils.GetProjectProperties (Tools.DotNETCommon.FileReference RawProjectPath, System.Collections.Generic.List`1[T] ClientTargetPlatforms, System.Collections.Generic.List`1[T] ClientTargetConfigurations, System.Boolean AssetNativizationRequested) [0x00036] in <538229d5ae744bf38e5a5850079734b9>:0
     at AutomationTool.ProjectParams.AutodetectSettings (System.Boolean bReset) [0x0006f] in <538229d5ae744bf38e5a5850079734b9>:0
     at AutomationTool.ProjectParams..ctor (Tools.DotNETCommon.FileReference RawProjectPath, AutomationTool.BuildCommand Command, System.String Device, System.String MapToRun, System.String AdditionalServerMapParams, AutomationTool.ParamList`1[T] Port, System.String RunCommandline, System.String StageCommandline, System.String BundleName, System.String StageDirectoryParam, System.String UE4Exe, System.String SignPak, System.Collections.Generic.List`1[T] ClientConfigsToBuild, System.Collections.Generic.List`1[T] ServerConfigsToBuild, AutomationTool.ParamList`1[T] MapsToCook, AutomationTool.ParamList`1[T] MapIniSectionsToCook, AutomationTool.ParamList`1[T] DirectoriesToCook, System.String DDCGraph, System.String InternationalizationPreset, AutomationTool.ParamList`1[T] CulturesToCook, AutomationTool.ParamList`1[T] ClientCookedTargets, AutomationTool.ParamList`1[T] EditorTargets, AutomationTool.ParamList`1[T] ServerCookedTargets, System.Collections.Generic.List`1[T] ClientTargetPlatforms, System.Collections.Generic.Dictionary`2[TKey,TValue] ClientDependentPlatformMap, System.Collections.Generic.List`1[T] ServerTargetPlatforms, System.Collections.Generic.Dictionary`2[TKey,TValue] ServerDependentPlatformMap, System.Nullable`1[T] Build, System.Nullable`1[T] SkipBuildClient, System.Nullable`1[T] SkipBuildEditor, System.Nullable`1[T] Cook, System.Nullable`1[T] Run, System.Nullable`1[T] SkipServer, System.Nullable`1[T] Clean, System.Nullable`1[T] Compressed, System.Nullable`1[T] ForceUncompressed, System.String AdditionalPakOptions, System.String AdditionalIoStoreOptions, System.Nullable`1[T] IterativeCooking, System.String IterateSharedCookedBuild, System.Nullable`1[T] IterateSharedBuildUsePrecompiledExe, System.Nullable`1[T] CookAll, System.Nullable`1[T] CookPartialGC, System.Nullable`1[T] CookInEditor, System.String CookOutputDir, System.Nullable`1[T] CookMapsOnly, System.Nullable`1[T] CookOnTheFly, System.Nullable`1[T] CookOnTheFlyStreaming, System.Nullable`1[T] UnversionedCookedContent, System.Nullable`1[T] EncryptIniFiles, System.Nullable`1[T] EncryptPakIndex, System.Nullable`1[T] EncryptEverything, System.Nullable`1[T] SkipCookingEditorContent, System.Nullable`1[T] NumCookersToSpawn, System.String AdditionalCookerOptions, System.String OriginalReleaseVersion, System.String BasedOnReleaseVersion, System.String CreateReleaseVersion, System.String CreateReleaseVersionBasePath, System.String BasedOnReleaseVersionBasePath, System.Nullable`1[T] GeneratePatch, System.Nullable`1[T] AddPatchLevel, System.Nullable`1[T] StageBaseReleasePaks, System.String DiscVersion, System.String DLCName, System.String DiffCookedContentPath, System.Nullable`1[T] DLCIncludeEngineContent, System.Nullable`1[T] DLCPakPluginFile, System.Nullable`1[T] DLCActLikePatch, System.Nullable`1[T] CrashReporter, System.Nullable`1[T] DedicatedServer, System.Nullable`1[T] Client, System.Nullable`1[T] Deploy, System.String DeployFolder, System.String GetFile, System.Nullable`1[T] FileServer, System.Nullable`1[T] Foreign, System.Nullable`1[T] ForeignCode, System.Nullable`1[T] LogWindow, System.Nullable`1[T] NoCleanStage, System.Nullable`1[T] NoClient, System.Nullable`1[T] NoDebugInfo, System.Nullable`1[T] SeparateDebugInfo, System.Nullable`1[T] MapFile, System.Nullable`1[T] NoXGE, System.Nullable`1[T] SkipPackage, System.Nullable`1[T] Package, System.Nullable`1[T] Pak, System.Nullable`1[T] IgnorePaksFromDifferentCookSource, System.Nullable`1[T] IoStore, System.Nullable`1[T] SkipIoStore, System.Nullable`1[T] GenerateOptimizationData, System.Nullable`1[T] Prereqs, System.String AppLocalDirectory, System.Nullable`1[T] NoBootstrapExe, System.Nullable`1[T] SignedPak, System.Nullable`1[T] PakAlignForMemoryMapping, System.Nullable`1[T] NullRHI, System.Nullable`1[T] FakeClient, System.Nullable`1[T] EditorTest, System.Nullable`1[T] RunAutomationTests, System.String RunAutomationTest, System.Nullable`1[T] CrashIndex, System.Nullable`1[T] SkipCook, System.Nullable`1[T] SkipCookOnTheFly, System.Nullable`1[T] SkipPak, System.Nullable`1[T] PrePak, System.Nullable`1[T] SkipStage, System.Nullable`1[T] Stage, System.Nullable`1[T] Manifests, System.Nullable`1[T] CreateChunkInstall, System.Nullable`1[T] SkipEncryption, System.Nullable`1[T] Unattended, System.Nullable`1[T] NumClients, System.Nullable`1[T] Archive, System.String ArchiveDirectoryParam, System.Nullable`1[T] ArchiveMetaData, System.Nullable`1[T] CreateAppBundle, System.String SpecifiedClientTarget, System.String SpecifiedServerTarget, AutomationTool.ParamList`1[T] ProgramTargets, System.Nullable`1[T] Distribution, System.Nullable`1[T] Prebuilt, System.Nullable`1[T] RunTimeoutSeconds, System.String SpecifiedArchitecture, System.String UbtArgs, System.String AdditionalPackageOptions, System.Nullable`1[T] IterativeDeploy, System.Nullable`1[T] FastCook, System.Nullable`1[T] IgnoreCookErrors, System.Nullable`1[T] RunAssetNativization, System.Nullable`1[T] CodeSign, System.Nullable`1[T] TreatNonShippingBinariesAsDebugFiles, System.Nullable`1[T] UseExtraFlavor, System.String Provision, System.String Certificate, System.String Team, System.Boolean AutomaticSigning, AutomationTool.ParamList`1[T] InMapsToRebuildLightMaps, AutomationTool.ParamList`1[T] InMapsToRebuildHLOD, AutomationTool.ParamList`1[T] TitleID) [0x01e9b] in <538229d5ae744bf38e5a5850079734b9>:0
     at BuildCookRun.SetupParams () [0x00024] in <bc31487390ae41f3aca3b3aaecc94edb>:0
     at BuildCookRun.ExecuteBuild () [0x00039] in <bc31487390ae41f3aca3b3aaecc94edb>:0
     at AutomationTool.BuildCommand.Execute () [0x00001] in <538229d5ae744bf38e5a5850079734b9>:0
     at AutomationTool.Automation.Execute (System.Collections.Generic.List`1[T] CommandsToExecute, System.Collections.Generic.Dictionary`2[TKey,TValue] Commands) [0x0007c] in <538229d5ae744bf38e5a5850079734b9>:0
     at AutomationTool.Automation.Process (System.String[] Arguments, UnrealBuildTool.StartupTraceListener StartupListener) [0x00286] in <538229d5ae744bf38e5a5850079734b9>:0
     at AutomationTool.Program.MainProc (System.String[] Arguments, UnrealBuildTool.StartupTraceListener StartupListener) [0x00001] in <4f556dff359e450ca5015839534cd675>:0
     at AutomationTool.Program+<>c__DisplayClass1_0.<Main>b__2 () [0x00000] in <4f556dff359e450ca5015839534cd675>:0
     at AutomationTool.InternalUtils.RunSingleInstance (System.Func`1[TResult] Main) [0x000a0] in <538229d5ae744bf38e5a5850079734b9>:0
     at AutomationTool.Program.Main (System.String[] Arguments) [0x0020a] in <4f556dff359e450ca5015839534cd675>:0
   (see /Users/n/Library/Logs/Unreal Engine/LocalBuildLogs/Log.txt for full exception trace)

AutomationTool exiting with ExitCode=1 (Error_Unknown)
RunUAT ERROR: AutomationTool was unable to run successfully.

This files has the Mac meta file prefix, which indicates this file is an artefact from moving from an Apple filesystem to a Windows file system, and is probably not readable. Where did you get the FMOD unreal integration from? If it was from our donwloads page, can you please confirm whether you downloaded the Windows or Mac version?

Hey Jeff! Thank you for your reply, it led me to the fix :). Here’s the issue and solution:

I am running Unreal from an external SSD formatted as ExFAT, and my system HD is APFS. It appears that downloading and unzipping (fmodstudio20207ue4.26mac from the downloads page) created those ._ meta files, but they can’t be seen in Finder (even as hidden).

Solution: I ran the command dot_clean /Volumes/SSK\ Storage in Terminal (after granting full access) and that cleans up those files. After doing that, the build completed successfully.

Thank you so much, I was very stuck! I hadn’t considered it to be related to that because my other plugins were working, and I hadn’t run into any issues before trying to package the game. Cheers!

1 Like