PlayEveryWare / eos_plugin_for_unity

Repository for PlayEveryWare's EOS Plugin for Unity, bringing the functionality of Epic Online Services to the Unity Game Engine.
https://eospluginforunity.playeveryware.com
MIT License
272 stars 48 forks source link

EAC Mac - "Settings.json not found" when launching eac_launcher.app and "Error loading anti-cheat module" when launching eac_launcher.app/Contents/MacOS/start_protected_game #785

Closed PetrBodnar closed 1 month ago

PetrBodnar commented 1 month ago

Describe the bug Hello!

We are added EAC to Mac build of our Steam game. When we launch our game we get window with message "Settings.json not found", but Settings.json are in place and filled with values. If we launch "start_protected_game.app/Contents/MacOS/start_protected_game" directly we got window with message "Error loading anti-cheat module".

In both cases there are no useful logs in ~/Library/Caches/com.epicgames.easyanticheat/PRODUCT_ID/DEPLOYMENT_ID/anticheatlauncher.log Also we didn't find any useful logs in macOS Console app.

Also there are no bootstrapper's log at ~/Library/Caches/com.epicgames.easyanticheat/anticheatlauncher.log (which is mentioned here Anti-Cheat Bootstrapper).

Can you help us please - how should we debug this issues?

Expected behavior Build should start

Desktop (please complete the following information):

arthur740212 commented 1 month ago

Hi, and thank you for the report, we will be looking at this issue shortly. Some angles to attack the issue : Is the app built with the macbuilder.cs in our samples? Does the game run without running through steam?

PetrBodnar commented 1 month ago

Hi,

Is the app built with the macbuilder.cs in our samples?

No, the app is built using standard com.playeveryware.eos/Editor/macOS/MacOSBuilder.cs

Does the game run without running through steam?

We are running app directly now, without Steam

arthur740212 commented 1 month ago

Are the configurations of the package set correctly, and do they match Settings.json?

PetrBodnar commented 1 month ago

I checked - yes, the configurations of the package set correctly. We are continue to researching this issue on our side.

We removed com.apple.quarantine attribute from Settings.json (this attribute was on Settings.json for some reason): xattr -d com.apple.quarantine ./EasyAntiCheat/Settings.json and this didn't help.

Tried to launch with explicitly pointing to settings json eac_launcher.app/Contents/MacOS/start_protected_game -anticheat_settings="./EasyAntiCheat/Settings.json" and same result ("./EasyAntiCheat/Settings.json" not found).

Also checked for BOM in "./EasyAntiCheat/Settings.json" - no BOM.

Also tried chmod 0777 "./EasyAntiCheat/Settings.json"

In all cases we can see that ./EasyAntiCheat/Settings.json exists (ls -l shows it).

Tried to some verbose logging from eac_launcher.app/Contents/MacOS/start_protected_game (like --verbose or something else) but no result - we couldn't found any args for that.

PetrBodnar commented 1 month ago

We fixed "Settings.json not found" by removing com.apple.quarantine from whole game dir: xattr -r -d com.apple.quarantine ./game-dir/

Now we are trying to fix "Error loading anti-cheat module"

arthur740212 commented 1 month ago

Do you have Epic Launcher installed on the device?

PetrBodnar commented 1 month ago

No (we don't use it).

arthur740212 commented 1 month ago

It is possible that Epic launcher is needed for EAC to works, (like the bootstrapper does). Other than that, these are the possible problems stated in the document.

PetrBodnar commented 1 month ago

We are researching (already checked for firewall, client module, and Client Protections - all is ok). We will share the results when we will find the solution.

PetrBodnar commented 1 month ago

Hello!

We fixed this by adding com.apple.security.cs.disable-library-validation to entitlements when codesigning EAC bootstrapper (during notarization).