Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,29 @@
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [6.1.0] - 2026-05-19

### Added
- Added: Arm64 support for Windows.
- Added: Support for Custom Invites Disable Requests.
- Added: Utility to remove PUID and other identifiable information from logs.

### Changed
- Change: Update to EOS SDK 1.19.1.2-CL53289219
- Change: High Frequency P2P script improvements.

### Fixed
- Fix: Added a HandleLogout at UIPlayerReportMenu to close Player report menu when the player Logout.
- Fix: Updated ListOfStringsToEnumConverterTests.
- Fix: Updated tests to use ProductConfig instead of EOSConfig.
- Fix: TestCommon now uses the correct SessionBucketId.
- Fix: Achievements no longer stop working after authorization expires.
- Fix: Blocks enabling high-frequency sending when no valid peer is selected.
- Fix: Re-authenticates when P2P disconnects mid-session.

### Known Issue
- There is a benign error message for “Social Overlay: Intent parse failure” that does not cause any issues.

## [6.0.2] - 2026-03-10

### Fixed
Expand Down
4 changes: 2 additions & 2 deletions Documentation~/IL2CPP Setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
Some EOS samples and certain custom implementations may rely on **Newtonsoft.Json** for JSON serialization and deserialization.
When building with **IL2CPP** and **Managed Code Stripping** enabled, Unity may remove unused or reflection-referenced members from assemblies.
Because Newtonsoft.Json uses reflection heavily, this can lead to missing types at runtime (especially in **Android**, **iOS**, and **WebGL** builds).
Some parts of the *EOS Unity Plugin (PlayEveryWare)* rely on **type converter classes** that IL2CPP may incorrectly remove.
Some parts of the *EOS Unity Plugin* rely on **type converter classes** that IL2CPP may incorrectly remove.
This affects several authentication flows, including **Exchange Code Auth** where the login callback may never complete and remain stuck in a state.

This section describes how to **prevent code stripping** and ensure consistent runtime behavior.
Expand Down Expand Up @@ -50,4 +50,4 @@ You should perform this step if **any of the following are true**:
</linker>
```

If size is critical, you may scope preservation to specific types/members instead of preserve="all". See [Unity’s Link XML reference](https://docs.unity3d.com/6000.2/Documentation/Manual/managed-code-stripping-xml-formatting.html?).
If size is critical, you may scope preservation to specific types/members instead of preserve="all". See [Unity’s Link XML reference](https://docs.unity3d.com/Manual/managed-code-stripping-xml-formatting.html).
6 changes: 3 additions & 3 deletions Documentation~/add_plugin.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ The following document outlines the two methods with which you can add the plugi

## Adding the package from a git URL

1. Install [git](https://docs.unity3d.com/2021.3/Documentation/Manual/upm-git.html#req) and [git-lfs](https://docs.unity3d.com/2021.3/Documentation/Manual/upm-git.html#req).
1. Install [git](https://docs.unity3d.com/Manual/upm-git.html#req) and [git-lfs](https://docs.unity3d.com/Manual/upm-git.html#req).
2. From the Unity Editor, open the Package Manager. `Window -> Package Manager`.

![unity tools package manager](/Documentation~/images/unity_tools_package_manager.gif)
Expand All @@ -19,7 +19,7 @@ The following document outlines the two methods with which you can add the plugi
8. Finally, [Configure the Plugin](/Documentation~/configure_plugin.md).

> [!NOTE]
> For additional details, see the [Unity Documentation for adding a UPM via Git URL](https://docs.unity3d.com/2021.3/Documentation/Manual/upm-ui-giturl.html).
> For additional details, see the [Unity Documentation for adding a UPM via Git URL](https://docs.unity3d.com/Manual/upm-ui-giturl.html).

## Adding the package from a tarball

Expand All @@ -44,5 +44,5 @@ The following document outlines the two methods with which you can add the plugi
8. Finally, <a href="#configuring-the-plugin">configure the plugin</a>.

> [!NOTE]
> For additional details, see the [Unity Documentation for adding a UPM via Tarball](https://docs.unity3d.com/2021.3/Documentation/Manual/upm-ui-tarball.html).
> For additional details, see the [Unity Documentation for adding a UPM via Tarball](https://docs.unity3d.com/Manual/upm-ui-tarball.html).

6 changes: 3 additions & 3 deletions Documentation~/android/README_Android.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
* The standard <a href="/README.md#prerequisites">Prerequisites</a> for all platforms.
* Check out this <a href="environment_setup_android.md#environment-setup-for-android">Environment Setup</a> doc for a quick setup guide.
* More detailed instructions can be found in the links below.
* <a href="https://docs.unity3d.com/2022.3/Documentation/Manual/android-sdksetup.html">Android environment setup</a> for Unity.
* <a href="https://docs.unity3d.com/Manual/android-sdksetup.html">Android environment setup</a> for Unity.
* The Android Build Support <a href="https://docs.unity3d.com/hub/manual/AddModules.html">module</a>.

## Importing the Plugin
Expand All @@ -26,7 +26,7 @@ Please note the details in the <a href="#running-the-samples">Running the sample

## Running the samples

When following the steps to <a href="/README.md#running-the-samples">run a sample</a> from a build for Android, follow the Unity doc for <a href="https://docs.unity3d.com/2022.3/Documentation/Manual/android-sdksetup.html">Debugging on an Android device</a>, to connect your device to the engine.
When following the steps to <a href="/README.md#running-the-samples">run a sample</a> from a build for Android, follow the Unity doc for <a href="https://docs.unity3d.com/Manual/android-sdksetup.html">Debugging on an Android device</a>, to connect your device to the engine.
This will allow the smoother ```Build And Run``` option to work instead of just using the ```Build``` button.

When running on a device you may need to <a href="https://developer.android.com/studio/debug/dev-options#enable">enable developer mode</a> on the device, then <a href="https://developer.android.com/studio/debug/dev-options#Enable-debugging">Enable USB debugging on your device</a>, as well as accepting any popups that appear on the phone during the process.
Expand All @@ -46,7 +46,7 @@ You can follow the standard <a href="/README.md#configuring-the-plugin">Configur
>[!WARNING]
>This is required, even if you leave every field blank.

3. Update the <a href="https://docs.unity3d.com/2022.3/Documentation/Manual/class-PlayerSettingsAndroid.html">Minimum API Level</a> to be at least ```Android 7.0 'Nougat' (API Level 24)```.
3. Update the <a href="https://docs.unity3d.com/Manual/class-PlayerSettingsAndroid.html">Minimum API Level</a> to be at least ```Android 7.0 'Nougat' (API Level 24)```.


# FAQ
Expand Down
4 changes: 2 additions & 2 deletions Documentation~/iOS/README_iOS.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
## Prerequisites

* The standard <a href="/README.md#prerequisites">Prerequisites</a> for all platforms.
* <a href="https://docs.unity3d.com/2021.3/Documentation/Manual/ios-environment-setup.html">iOS environment setup</a> for Unity.
* <a href="https://docs.unity3d.com/Manual/ios-environment-setup.html">iOS environment setup</a> for Unity.
* The iOS Unity <a href="https://docs.unity3d.com/hub/manual/AddModules.html">module</a>.
* Xcode 10.2.x.

Expand All @@ -27,7 +27,7 @@ You can follow the standard <a href="/README.md#samples">Samples</a> process. Pl
When following the steps to <a href="/README.md#running-the-samples">run a sample</a> from a build for iOS, in Xcode, open the `.xcodeproj` from the resulting build folder. Follow the [Apple Developer instructions](https://developer.apple.com/documentation/xcode/running-your-app-in-simulator-or-on-a-device) to build and run the app. If running on a device you may need to <a href="https://developer.apple.com/documentation/xcode/enabling-developer-mode-on-a-device">enable developer mode</a> on the device. This may require you to set up <a href="https://help.apple.com/xcode/mac/current/#/dev80cc24546">automatic signing</a> as well.

> [!NOTE]
> Find the build steps in the Unity docs <a href="https://docs.unity3d.com/2021.3/Documentation/Manual/iphone-BuildProcess.html">here</a>.
> Find the build steps in the Unity docs <a href="https://docs.unity3d.com/Manual/iphone-BuildProcess.html">here</a>.

## Configuring the Plugin

Expand Down
2 changes: 1 addition & 1 deletion Documentation~/supported_platforms.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,4 +26,4 @@ We are always looking to add the functionality of the plugin to more platforms,
## Targetted Versions:

* Targets [Unity 2021.3.16f1](https://unity.com/releases/editor/whats-new/2021.3.16), for best results a version of Unity 2021 is preferred.
* Targets [EOS SDK 1.19.0.3](https://dev.epicgames.com/docs/epic-online-services/release-notes#release-notes) *(bundled with plugin)*.
* Targets [EOS SDK 1.19.1.2](https://dev.epicgames.com/docs/epic-online-services/release-notes#release-notes) *(bundled with plugin)*.
2 changes: 1 addition & 1 deletion Documentation~/unity_specific.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ We take multiple factors into account, and decide on the versions that are most

The current release is using :
* Unity 2021.3.16f1.
* EOS SDK 1.19.0.3.
* EOS SDK 1.19.1.2.
* SDK versions of the target platform that supports the given Unity and EOS SDK versions above could be found in their platform forums.

### Why do we reload the EOS SDK DLL in the editor?
Expand Down
3 changes: 2 additions & 1 deletion Editor/Build/BuildRunner.cs
Original file line number Diff line number Diff line change
Expand Up @@ -74,8 +74,9 @@ public void OnPreprocessBuild(BuildReport report)
// Run the static builder's prebuild.
s_builder?.PreBuild(report);

#if !DISABLESTEAMWORKS
#if !DISABLESTEAMWORKS && !EOS_PLATFORM_WINDOWS_ARM64
// If we're using Steamworks, then look at the user's Steam configuration file
// (Steamworks does not ship Windows ARM64 binaries, so it is gated off there.)
// If the "steamApiInterfaceVersionsArray" is empty, try to set it for the user
SteamConfig config = Config.Get<SteamConfig>();
if (config != null && (config.steamApiInterfaceVersionsArray == null || config.steamApiInterfaceVersionsArray.Count == 0))
Expand Down
20 changes: 15 additions & 5 deletions Editor/Build/PlatformSpecificBuilder.cs
Original file line number Diff line number Diff line change
Expand Up @@ -99,10 +99,7 @@ protected PlatformSpecificBuilder(string nativeCodeOutputDirectory, params Build
/// <param name="report">The prebuild report.</param>
public void OnPreprocessBuild(BuildReport report)
{
// If the platform being built is one of the platforms that this
// builder builds to, then set this as the builder with the
// BuildRunner.
if (_buildTargets.Contains(report.summary.platform))
if (ShouldHandle(report))
{
// Note that in this context, despite being within an abstract
// class, the most derived instance will be returned when
Expand All @@ -111,6 +108,19 @@ public void OnPreprocessBuild(BuildReport report)
}
}

/// <summary>
/// Determines whether this builder should handle the indicated build.
/// Default implementation matches by BuildTarget. Override for
/// finer-grained dispatch (e.g. architecture sub-options on Windows
/// where x64 and ARM64 share BuildTarget.StandaloneWindows64).
/// </summary>
/// <param name="report">The build report being processed.</param>
/// <returns>True if this builder is responsible for this build.</returns>
protected virtual bool ShouldHandle(BuildReport report)
{
return _buildTargets.Contains(report.summary.platform);
}

/// <summary>
/// Adds a mapping of solution file to expected binary file output.
/// </summary>
Expand Down Expand Up @@ -167,7 +177,7 @@ public virtual void BuildNativeCode()
// via UPM.
if (_projectFileToBinaryFilesMap.Keys.All(File.Exists))
{
BuildUtility.BuildNativeBinaries(_projectFileToBinaryFilesMap, _nativeCodeOutputDirectory, true);
BuildUtility.BuildNativeBinaries(_projectFileToBinaryFilesMap, _nativeCodeOutputDirectory, true, GetPlatformString());
}
else
{
Expand Down
6 changes: 6 additions & 0 deletions Editor/EditorWindows/CheckDeploymentWindow.cs
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ public class CheckDeploymentWindow : EOSEditorWindow
private const string WindowsPluginDirectory = "Assets/Plugins/Windows";
private const string EOSWindows64DllFile = "x64/EOSSDK-Win64-Shipping.dll";
private const string EOSWindows32DllFile = "x86/EOSSDK-Win32-Shipping.dll";
private const string EOSWindowsARM64DllFile = "ARM64/EOSSDK-Win64-Shippingarm64.dll";

private string content;
private string currentPath;
Expand Down Expand Up @@ -84,6 +85,11 @@ protected override void RenderWindow()
LoadDLLFile(Path.Combine(FileSystemUtility.GetProjectPath(), WindowsPluginDirectory, EOSWindows64DllFile));
}

if (GUILayout.Button(EOSWindowsARM64DllFile))
{
LoadDLLFile(Path.Combine(FileSystemUtility.GetProjectPath(), WindowsPluginDirectory, EOSWindowsARM64DllFile));
}

if (!string.IsNullOrWhiteSpace(currentPath))
{
scrollPosition = GUILayout.BeginScrollView(scrollPosition, GUILayout.MaxHeight(Screen.height));
Expand Down
Loading
Loading