On M1 mac, Fusion always fails with: DllNotFoundException: nanosockets assembly:<unknown

I tried following the `Fusion 100` tutorial as well as download and run the Tanknarog sample.

Unfortunately for both Fusion fails when trying to start it directly in the Unity Editor [ 2021.2.11f1 M1 Silicon].

For the sample scene it only fails after I tap Host or Join i.e. when Fusion starts with

DllNotFoundException: nanosockets assembly:<unknown assembly> type:<unknown type> member:(null)
Fusion.Sockets.NetAddress.CreateFromIpPort (System.String ip, System.UInt16 port) (at <2ddad210613341abb3e6895b0b16dd06>:0)
Fusion.Sockets.NetAddress.Any (System.UInt16 port) (at <2ddad210613341abb3e6895b0b16dd06>:0)
Fusion.NetworkRunner.StartGameModeCloud (Fusion.StartGameArgs args) (at <94867022d9244a9b953a705398e073bf>:0)

Best Answers

  • ramonmelo
    ramonmelo mod
    Answer ✓

    Hi @Bersaelor ,


    Please check if the right DLL is included in the build. You will find two versions of the NanoSockets lib included in the SDK here Assets\Photon\Fusion\Plugins\NanoSockets\macOS , one for the Apple M1 and one for the Intel MacBooks, make sure the right one is included on your build using the Import Settings panel.



    --

    Ramon Melo

    Photon Fusion Team

  • babyfish0226
    edited February 2023 Answer ✓

    It's work in iOS but not work in tvOS. Anything news ? thanks.

    Update:

    Finally i found the solution. Go to /Photon/Fusion/Plugins/NanoSockets/NanoSockets/Dynamic and click NanoSocket.dll and check the tvOS in import Settings. Then it work.

  • babyfish0226
    Answer ✓

    I found that version of Fusion SDK 1.1.5 F2 Build 643 has added the tvOS library. Thank you!

Answers

  • Fusion is not yet compatible with M1, I've been told on the fusion discord.

  • Yeah @JohnTube already answered in https://forum.photonengine.com/discussion/comment/59248#Comment_59248 too.


    It does wotk with Intel-Unity and Rosetta, but Intel Unity is really slow at compiling scripts ...

  • Hi @Bersaelor ,


    Fusion now supports Apple M1 Processors, please, download the latest SDK.


    --

    Ramon Melo

    Photon Fusion Team

  • Bersaelor
    Bersaelor
    edited April 2022

    @ramonmelo thank you for the update!

    So when using the Fusion 100 sample project as a basis, I removed the Photon folder and imported the latest nightly build from the SDK&Releases section (Photon-Fusion-1.1.0-RC-Nightly-449).

    When I run the app and click the scene I get the following error:

    [Fusion] System.DllNotFoundException
    See next error log entry for details.
    UnityEngine.Debug:LogError (object,UnityEngine.Object)
    Fusion.FusionUnityLogger:Log<Fusion.Log/DefaultContext> (Fusion.LogType,string,Fusion.Log/DefaultContext&,string) (at Assets/Photon/Fusion/Scripts/FusionUnityLogger.cs:123)
    Fusion.FusionUnityLogger:LogException<Fusion.Log/DefaultContext> (string,Fusion.Log/DefaultContext&,System.Exception) (at Assets/Photon/Fusion/Scripts/FusionUnityLogger.cs:135)
    Fusion.Log:Exception<Fusion.NetworkRunner> (Fusion.NetworkRunner,System.Exception) (at Fusion/Fusion.Common/Log.cs:114)
    Fusion.NetworkRunner/<ShutdownWithException>d__271:MoveNext () (at Fusion/Fusion.Runtime/Runner/NetworkRunner.Matchmaking.cs:752)
    System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1<Fusion.StartGameException>:Start<Fusion.NetworkRunner/<ShutdownWithException>d__271> (Fusion.NetworkRunner/<ShutdownWithException>d__271&)
    Fusion.NetworkRunner:ShutdownWithException (System.Exception)
    Fusion.NetworkRunner/<StartGameModeCloud>d__270:MoveNext () (at Fusion/Fusion.Runtime/Runner/NetworkRunner.Matchmaking.cs:730)
    System.Threading.Tasks.TaskCompletionSource`1<int16>:TrySetResult (int16)
    Fusion.Photon.Realtime.Async.OperationHandler:SetResult (int16) (at Fusion/Fusion.Realtime/RealtimeExtensions/OperationHandler.cs:33)
    Fusion.Photon.Realtime.Async.OperationHandler:OnJoinedRoom () (at Fusion/Fusion.Realtime/RealtimeExtensions/OperationHandler.cs:121)
    Fusion.Photon.Realtime.MatchMakingCallbacksContainer:OnJoinedRoom () (at Fusion/Fusion.Realtime/Realtime/LoadBalancingClient.cs:4177)
    Fusion.Photon.Realtime.LoadBalancingClient:OnEvent (ExitGames.Client.Photon.EventData) (at Fusion/Fusion.Realtime/Realtime/LoadBalancingClient.cs:3227)
    ExitGames.Client.Photon.PeerBase:DeserializeMessageAndCallback (ExitGames.Client.Photon.StreamBuffer) (at D:/Dev/Work/photon-dotnet-sdk/PhotonDotNet/PeerBase.cs:899)
    ExitGames.Client.Photon.EnetPeer:DispatchIncomingCommands () (at D:/Dev/Work/photon-dotnet-sdk/PhotonDotNet/EnetPeer.cs:565)
    ExitGames.Client.Photon.PhotonPeer:DispatchIncomingCommands () (at D:/Dev/Work/photon-dotnet-sdk/PhotonDotNet/PhotonPeer.cs:1771)
    ExitGames.Client.Photon.PhotonPeer:Service () (at D:/Dev/Work/photon-dotnet-sdk/PhotonDotNet/PhotonPeer.cs:1685)
    Fusion.Photon.Realtime.LoadBalancingClient:Service () (at Fusion/Fusion.Realtime/Realtime/LoadBalancingClient.cs:1399)
    Fusion.Photon.Realtime.FusionRelayClient:Update () (at Fusion/Fusion.Realtime/Client/FusionRelayClient.cs:219)
    Fusion.CloudCommunicator:Service () (at Fusion/Fusion.Runtime/CloudServices/CloudCommunicator.cs:51)
    Fusion.CloudServices:Update () (at Fusion/Fusion.Runtime/CloudServices/CloudServices.cs:154)
    Fusion.NetworkRunner:Update () (at Fusion/Fusion.Runtime/Runner/NetworkRunner.cs:1120)
    
    

    On Unity 2021.2.19f1-apple-silicon.


    Maybe the next error message is more helpful:

    DllNotFoundException: nanosockets assembly:<unknown assembly> type:<unknown type> member:(null)
    Fusion.Sockets.NetAddress.CreateFromIpPort (System.String ip, System.UInt16 port) (at Fusion/Fusion.Sockets/NetAddress.cs:119)
    Fusion.Sockets.NetAddress.Any (System.UInt16 port) (at Fusion/Fusion.Sockets/NetAddress.cs:98)
    Fusion.NetworkRunner.StartGameModeCloud (Fusion.StartGameArgs args) (at Fusion/Fusion.Runtime/Runner/NetworkRunner.Matchmaking.cs:677)
    UnityEngine.Debug:LogException(Exception)
    Fusion.FusionUnityLogger:LogException(String, DefaultContext&, Exception) (at Assets/Photon/Fusion/Scripts/FusionUnityLogger.cs:139)
    Fusion.Log:Exception(NetworkRunner, Exception) (at Fusion/Fusion.Common/Log.cs:114)
    Fusion.<ShutdownWithException>d__271:MoveNext() (at Fusion/Fusion.Runtime/Runner/NetworkRunner.Matchmaking.cs:752)
    System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1:Start(<ShutdownWithException>d__271&)
    Fusion.NetworkRunner:ShutdownWithException(Exception)
    Fusion.<StartGameModeCloud>d__270:MoveNext() (at Fusion/Fusion.Runtime/Runner/NetworkRunner.Matchmaking.cs:730)
    System.Threading.Tasks.TaskCompletionSource`1:TrySetResult(Int16)
    Fusion.Photon.Realtime.Async.OperationHandler:SetResult(Int16) (at Fusion/Fusion.Realtime/RealtimeExtensions/OperationHandler.cs:33)
    Fusion.Photon.Realtime.Async.OperationHandler:OnJoinedRoom() (at Fusion/Fusion.Realtime/RealtimeExtensions/OperationHandler.cs:121)
    Fusion.Photon.Realtime.MatchMakingCallbacksContainer:OnJoinedRoom() (at Fusion/Fusion.Realtime/Realtime/LoadBalancingClient.cs:4177)
    Fusion.Photon.Realtime.LoadBalancingClient:OnEvent(EventData) (at Fusion/Fusion.Realtime/Realtime/LoadBalancingClient.cs:3227)
    ExitGames.Client.Photon.PeerBase:DeserializeMessageAndCallback(StreamBuffer) (at D:/Dev/Work/photon-dotnet-sdk/PhotonDotNet/PeerBase.cs:899)
    ExitGames.Client.Photon.EnetPeer:DispatchIncomingCommands() (at D:/Dev/Work/photon-dotnet-sdk/PhotonDotNet/EnetPeer.cs:565)
    ExitGames.Client.Photon.PhotonPeer:DispatchIncomingCommands() (at D:/Dev/Work/photon-dotnet-sdk/PhotonDotNet/PhotonPeer.cs:1771)
    ExitGames.Client.Photon.PhotonPeer:Service() (at D:/Dev/Work/photon-dotnet-sdk/PhotonDotNet/PhotonPeer.cs:1685)
    Fusion.Photon.Realtime.LoadBalancingClient:Service() (at Fusion/Fusion.Realtime/Realtime/LoadBalancingClient.cs:1399)
    Fusion.Photon.Realtime.FusionRelayClient:Update() (at Fusion/Fusion.Realtime/Client/FusionRelayClient.cs:219)
    Fusion.CloudCommunicator:Service() (at Fusion/Fusion.Runtime/CloudServices/CloudCommunicator.cs:51)
    Fusion.CloudServices:Update() (at Fusion/Fusion.Runtime/CloudServices/CloudServices.cs:154)
    Fusion.NetworkRunner:Update() (at Fusion/Fusion.Runtime/Runner/NetworkRunner.cs:1120)
    
    
  • ramonmelo
    ramonmelo mod
    Answer ✓

    Hi @Bersaelor ,


    Please check if the right DLL is included in the build. You will find two versions of the NanoSockets lib included in the SDK here Assets\Photon\Fusion\Plugins\NanoSockets\macOS , one for the Apple M1 and one for the Intel MacBooks, make sure the right one is included on your build using the Import Settings panel.



    --

    Ramon Melo

    Photon Fusion Team

  • Thank you @ramonmelo , I actually found out last night from https://forum.photonengine.com/discussion/comment/59909#Comment_59909 .

    Didn't know about that import-platform-setting !

  • herra_lehtiniemi
    edited May 2022

    @ramonmelo I'm having this issue as well, but it now only occurs in build. I was able to fix it for the Editor with these settings:

    But when I build, I get the same error again:

    DllNotFoundException: nanosockets assembly:<unknown assembly> type:<unknown type> member:(null)
     at (wrapper managed-to-native) NanoSockets.UDP.SetIP(NanoSockets.Address&,string)
     at Fusion.Sockets.NetAddress.CreateFromIpPort (System.String ip, System.UInt16 port) [0x00008] in Fusion\Fusion.Sockets\NetAddress.cs:119 
     at Fusion.Sockets.NetAddress.Any (System.UInt16 port) [0x00000] in Fusion\Fusion.Sockets\NetAddress.cs:98 
     at Fusion.NetworkRunner.StartGameModeCloud (Fusion.StartGameArgs args) [0x0034a] in Fusion\Fusion.Runtime\Runner\NetworkRunner.Matchmaking.cs:677 
    UnityEngine.DebugLogHandler:Internal_LogException(Exception, Object)
    UnityEngine.DebugLogHandler:LogException(Exception, Object)
    UnityEngine.Logger:LogException(Exception, Object)
    UnityEngine.Debug:LogException(Exception)
    Fusion.FusionUnityLogger:LogException(String, DefaultContext&, Exception) (at /Users/xxx/Koodaus/xxx/Assets/Photon/Fusion/Scripts/FusionUnityLogger.cs:139)
    Fusion.Log:Exception(NetworkRunner, Exception) (at Fusion\Fusion.Common\Log.cs:114)
    Fusion.<ShutdownWithException>d__269:MoveNext() (at Fusion\Fusion.Runtime\Runner\NetworkRunner.Matchmaking.cs:752)
    System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1:Start(<ShutdownWithException>d__269&)
    Fusion.NetworkRunner:ShutdownWithException(Exception)
    Fusion.<StartGameModeCloud>d__268:MoveNext() (at Fusion\Fusion.Runtime\Runner\NetworkRunner.Matchmaking.cs:730)
    System.Runtime.CompilerServices.MoveNextRunner:InvokeMoveNext(Object)
    System.Threading.ExecutionContext:RunInternal(ExecutionContext, ContextCallback, Object, Boolean)
    System.Threading.ExecutionContext:Run(ExecutionContext, ContextCallback, Object, Boolean)
    System.Runtime.CompilerServices.MoveNextRunner:Run()
    System.Threading.Tasks.AwaitTaskContinuation:InvokeAction(Object)
    System.Threading.Tasks.AwaitTaskContinuation:RunCallback(ContextCallback, Object, Task&)
    System.Threading.Tasks.SynchronizationContextAwaitTaskContinuation:Run(Task, Boolean)
    System.Threading.Tasks.Task:FinishContinuations()
    System.Threading.Tasks.Task:FinishStageThree()
    System.Threading.Tasks.Task`1:TrySetResult(Int16)
    System.Threading.Tasks.TaskCompletionSource`1:TrySetResult(Int16)
    Fusion.Photon.Realtime.Async.OperationHandler:SetResult(Int16) (at Fusion\Fusion.Realtime\RealtimeExtensions\OperationHandler.cs:33)
    Fusion.Photon.Realtime.Async.OperationHandler:OnJoinedRoom() (at Fusion\Fusion.Realtime\RealtimeExtensions\OperationHandler.cs:121)
    Fusion.Photon.Realtime.MatchMakingCallbacksContainer:OnJoinedRoom() (at Fusion\Fusion.Realtime\Realtime\LoadBalancingClient.cs:4177)
    Fusion.Photon.Realtime.LoadBalancingClient:OnEvent(EventData) (at Fusion\Fusion.Realtime\Realtime\LoadBalancingClient.cs:3227)
    ExitGames.Client.Photon.PeerBase:DeserializeMessageAndCallback(StreamBuffer) (at D:\Dev\Work\photon-dotnet-sdk\PhotonDotNet\PeerBase.cs:899)
    ExitGames.Client.Photon.EnetPeer:DispatchIncomingCommands() (at D:\Dev\Work\photon-dotnet-sdk\PhotonDotNet\EnetPeer.cs:565)
    ExitGames.Client.Photon.PhotonPeer:DispatchIncomingCommands() (at D:\Dev\Work\photon-dotnet-sdk\PhotonDotNet\PhotonPeer.cs:1771)
    ExitGames.Client.Photon.PhotonPeer:Service() (at D:\Dev\Work\photon-dotnet-sdk\PhotonDotNet\PhotonPeer.cs:1685)
    Fusion.Photon.Realtime.LoadBalancingClient:Service() (at Fusion\Fusion.Realtime\Realtime\LoadBalancingClient.cs:1399)
    Fusion.Photon.Realtime.FusionRelayClient:Update() (at Fusion\Fusion.Realtime\Client\FusionRelayClient.cs:219)
    Fusion.CloudCommunicator:Service() (at Fusion\Fusion.Runtime\CloudServices\CloudCommunicator.cs:51)
    Fusion.CloudServices:Update() (at Fusion\Fusion.Runtime\CloudServices\CloudServices.cs:154)
    Fusion.NetworkRunner:Update() (at Fusion\Fusion.Runtime\Runner\NetworkRunner.cs:1107)
    
    


    Like shown in the first screencap, I have checked the "Standalone". I'm running an M1 and I have disabled Intel nanosockets. I double checked that the build runs as type "Apple" (it's Universal so it shouldn't try to access Intel nanosockets).

    Any ideas on why this occurs on build-only are welcomed!

    Running Unity 2022.2.0a13 with


  • Hi @herra_lehtiniemi ,


    • If you set it to build for both (Intel 64 + Apple), how does that goes? Same result?
    • Which Unity version are you using?


    --

    Ramon Melo

    Photon Fusion Team

  • Same errors:

    Mono path[0] = '/Users/yufu/Downloads/Fusion-101-1.0.0/untitled folder/pp.app/Contents/Resources/Data/Managed'
    Mono config path = '/Users/yufu/Downloads/Fusion-101-1.0.0/untitled folder/pp.app/Contents/MonoBleedingEdge/etc'
    Found 1 interfaces on host : 0) 192.168.0.105
    Multi-casting "[IP] 192.168.0.105 [Port] 55150 [Flags] 2 [Guid] 2029881037 [EditorId] 3232550764 [Version] 1048832 [Id] OSXPlayer(1,YufudeMacBook-Pro.local) [Debug] 0 [PackageName] OSXPlayer [ProjectName] Testing101" to [225.0.0.222:54997]...
    AS: AutoStreaming module initializing.
    Initialize engine version: 2021.3.2f1c1 (7ac240095d88)
    [Subsystems] Discovering subsystems at path /Users/yufu/Downloads/Fusion-101-1.0.0/untitled folder/pp.app/Contents/Resources/Data/UnitySubsystems
    GfxDevice: creating device client; threaded=1; jobified=0
     preferred device: Apple M1 Pro (high power)
    Metal devices available: 1
    0: Apple M1 Pro (high power)
    Using device Apple M1 Pro (high power)
    Initializing Metal device caps: Apple M1 Pro
    Begin MonoManager ReloadAssembly
    - Completed reload, in  0.050 seconds
    UnloadTime: 0.642208 ms
    Fallback handler could not load library /Users/yufu/Downloads/Fusion-101-1.0.0/untitled folder/pp.app/Contents/Frameworks/MonoEmbedRuntime/osx/nanosockets
    Fallback handler could not load library /Users/yufu/Downloads/Fusion-101-1.0.0/untitled folder/pp.app/Contents/Frameworks/MonoEmbedRuntime/osx/libnanosockets.dylib
    Fallback handler could not load library /Users/yufu/Downloads/Fusion-101-1.0.0/untitled folder/pp.app/Contents/Frameworks/MonoEmbedRuntime/osx/libnanosockets.dylib
    Fallback handler could not load library /Users/yufu/Downloads/Fusion-101-1.0.0/untitled folder/pp.app/Contents/Frameworks/MonoEmbedRuntime/osx/libnanosockets.so
    Fallback handler could not load library /Users/yufu/Downloads/Fusion-101-1.0.0/untitled folder/pp.app/Contents/Frameworks/MonoEmbedRuntime/osx/libnanosockets.bundle
    Fallback handler could not load library /Users/yufu/Downloads/Fusion-101-1.0.0/untitled folder/pp.app/Contents/Frameworks/MonoEmbedRuntime/osx/nanosockets
    Fallback handler could not load library /Users/yufu/Downloads/Fusion-101-1.0.0/untitled folder/pp.app/Contents/Frameworks/MonoEmbedRuntime/osx/libnanosockets
    Fallback handler could not load library /Users/yufu/Downloads/Fusion-101-1.0.0/untitled folder/pp.app/Contents/Frameworks/MonoEmbedRuntime/osx/libnanosockets.dylib
    Fallback handler could not load library /Users/yufu/Downloads/Fusion-101-1.0.0/untitled folder/pp.app/Contents/Frameworks/MonoEmbedRuntime/osx/libnanosockets.dylib
    Fallback handler could not load library /Users/yufu/Downloads/Fusion-101-1.0.0/untitled folder/pp.app/Contents/Frameworks/MonoEmbedRuntime/osx/libnanosockets.so
    Fallback handler could not load library /Users/yufu/Downloads/Fusion-101-1.0.0/untitled folder/pp.app/Contents/Frameworks/MonoEmbedRuntime/osx/libnanosockets.bundle
    Fallback handler could not load library /Users/yufu/Downloads/Fusion-101-1.0.0/untitled folder/pp.app/Contents/Frameworks/MonoEmbedRuntime/osx/libnanosockets
    Fallback handler could not load library /Users/yufu/Downloads/Fusion-101-1.0.0/untitled folder/pp.app/Contents/Frameworks/MonoEmbedRuntime/osx/nanosockets
    Fallback handler could not load library /Users/yufu/Downloads/Fusion-101-1.0.0/untitled folder/pp.app/Contents/Frameworks/MonoEmbedRuntime/osx/libnanosockets.dylib
    Fallback handler could not load library /Users/yufu/Downloads/Fusion-101-1.0.0/untitled folder/pp.app/Contents/Frameworks/MonoEmbedRuntime/osx/libnanosockets.dylib
    Fallback handler could not load library /Users/yufu/Downloads/Fusion-101-1.0.0/untitled folder/pp.app/Contents/Frameworks/MonoEmbedRuntime/osx/libnanosockets.so
    Fallback handler could not load library /Users/yufu/Downloads/Fusion-101-1.0.0/untitled folder/pp.app/Contents/Frameworks/MonoEmbedRuntime/osx/libnanosockets.bundle
    Fallback handler could not load library /Users/yufu/Downloads/Fusion-101-1.0.0/untitled folder/pp.app/Contents/Frameworks/MonoEmbedRuntime/osx/nanosockets
    Fallback handler could not load library /Users/yufu/Downloads/Fusion-101-1.0.0/untitled folder/pp.app/Contents/Frameworks/MonoEmbedRuntime/osx/libnanosockets
    Fallback handler could not load library /Users/yufu/Downloads/Fusion-101-1.0.0/untitled folder/pp.app/Contents/Frameworks/MonoEmbedRuntime/osx/libnanosockets.dylib
    Fallback handler could not load library /Users/yufu/Downloads/Fusion-101-1.0.0/untitled folder/pp.app/Contents/Frameworks/MonoEmbedRuntime/osx/libnanosockets.dylib
    Fallback handler could not load library /Users/yufu/Downloads/Fusion-101-1.0.0/untitled folder/pp.app/Contents/Frameworks/MonoEmbedRuntime/osx/libnanosockets.so
    Fallback handler could not load library /Users/yufu/Downloads/Fusion-101-1.0.0/untitled folder/pp.app/Contents/Frameworks/MonoEmbedRuntime/osx/libnanosockets.bundle
    Fallback handler could not load library /Users/yufu/Downloads/Fusion-101-1.0.0/untitled folder/pp.app/Contents/Frameworks/MonoEmbedRuntime/osx/libnanosockets
    <color=#144078>[Fusion]</color> System.DllNotFoundException
    <i>See next error log entry for details.</i>
    UnityEngine.StackTraceUtility:ExtractStackTrace () (at /Users/bokken/buildslave/unity/build/Runtime/Export/Scripting/StackTrace.cs:37)
    UnityEngine.DebugLogHandler:LogFormat (UnityEngine.LogType,UnityEngine.Object,string,object[])
    UnityEngine.Logger:Log (UnityEngine.LogType,object,UnityEngine.Object)
    UnityEngine.Debug:LogError (object,UnityEngine.Object)
    Fusion.FusionUnityLogger:Log<Fusion.Log/DefaultContext> (Fusion.LogType,string,Fusion.Log/DefaultContext&,string) (at /Users/yufu/Downloads/Fusion-101-1.0.0/Assets/Photon/Fusion/Scripts/FusionUnityLogger.cs:123)
    Fusion.FusionUnityLogger:LogException<Fusion.Log/DefaultContext> (string,Fusion.Log/DefaultContext&,System.Exception) (at /Users/yufu/Downloads/Fusion-101-1.0.0/Assets/Photon/Fusion/Scripts/FusionUnityLogger.cs:135)
    Fusion.Log:Exception<Fusion.NetworkRunner> (Fusion.NetworkRunner,System.Exception) (at Fusion/Fusion.Common/Log.cs:114)
    Fusion.NetworkRunner/<ShutdownWithException>d__281:MoveNext () (at Fusion/Fusion.Runtime/Runner/NetworkRunner.Matchmaking.cs:773)
    System.Runtime.CompilerServices.AsyncTaskMethodBuilder`1<Fusion.StartGameException>:Start<Fusion.NetworkRunner/<ShutdownWithException>d__281> (Fusion.NetworkRunner/<ShutdownWithException>d__281&)
    Fusion.NetworkRunner:ShutdownWithException (System.Exception)
    
  • DoubleHitGames
    edited May 2022

    MAC BUILD : NANOSOCKETS DLL NOT FOUND

    • Unity Verstion: 2021.3.1f1
    • Fusion SDK 1.1.0 RC Nightly Build 491

    Hello guys, im reading the doc 100 of fusion and i looking for at the photon forum too. But i cant solve this problema with dll not found of the nanosocket. The doc and the forum cant helpme with this. Currently i can execute my project at editor mode and i can build this project too. But when i execute my mac build, the photons cant connect as Host, or client or any... The error message is send to me:

    DllNotFoundException: nanosockets assembly:<unknown assembly> type:<unknown type> member:(null)
    
    • I have already performed the processes indicated in the documentation to:
    • - Assets\Photon\Fusion\Plugins\NanoSockets\macOS\Intel\libnanosockets.dylib: Editor and Standalone unCheckd at importsettings.
    • Assets\Photon\Fusion\Plugins\NanoSockets\macOS\AppleSilicon\libnanosockets.dylib: - Editor and standAlone checked at importSettings. (CPU = AppleSilicon). (edited)

    I Maked a short video of Dlls configuration:

    But not yet.

  • I can confirm all of the above ... the DLLNotFoundException error happens in the build version only (connects in the editor) ... the plugin is set up correctly but it doesn't read it. I am using Unity 2021.3.1f1

    This is so disappointing.

  • Lee_Probert
    edited June 2022

    Just found the solution! You need to set the plugin CPU type to `Any CPU`. Use the Silicon plugin and disable the Intel one (as instructions above), but make sure you set the CPU type to `Any CPU`. That solved it for me. Runs in IDE and Build configuration.

  • Had the same problem, tried both 2021.3.1f1 and 2022.1.5f. It doesn't seem to play nicely when building for Apple Silicon, can confirm that switching 'Any CPU' also fixed my problem, thanks for sharing your solution!

  • Everybody has pointed out the Apple Silicon option, but you may have the Intel version of MAC.

    1- ) Check which version of Processor type do you have in your MAC

    2-) If you Processor Apple Silicon then;

    a- - Assets\Photon\Fusion\Plugins\NanoSockets\macOS\Intel\libnanosockets.dylib: Editor and Standalone unchecked at import settings.

    Assets\Photon\Fusion\Plugins\NanoSockets\macOS\AppleSilicon\libnanosockets.dylib: - Editor and standAlone checked at importSettings

    b- If you Processor Intel then;

    Assets\Photon\Fusion\Plugins\NanoSockets\macOS\AppleSilicon\libnanosockets.dylib: - Editor and standAlone unchecked at importSettings

    Assets\Photon\Fusion\Plugins\NanoSockets\macOS\Intel\libnanosockets.dylib: Editor and Standalone checked at import settings.

    3-) File-> Build Setting -> Architecture -> Select Intel 64-bit OR ...OR... Apple Silicon.

  • Hi,

    I'm having the same issue but on Windows - with IDE only. Build version is fine.

    I was trying to reimport and correct the nanosockets dll but not yet resolve this issue.

    Unity version is 2021.3.1f1

  • Workaround

    Unity 2022.1.14f1

    macOS Monterey 12.5.1 (Intel CPU)

    Fusion SDK 1.1.2 Nightly 573

    Same error on a dedicated server build.

    I tried everything and nothing worked. Even tried to download NanoSockets from git, but Fusion SDK refuses to work with it. Then I've noticed that it tries to find a dll in the Contents folder, as if I was building an .app folder and not just an executable console application... So, I manually created the whole path (/Contents/Frameworks/MonoEmbedRuntime/osx/) in the dedicated server target folder and copied there the libnanosockets.dylib file from Assets/Photon/Fusion/Plugins/NanoSockets/macOS and... that actually worked, the server launched and I was able to connect and start a game. I guess this could be a workaround now, but wish this was fixed.

  • apippofr
    apippofr
    edited October 2022

    I tried the workaround but the app still cant find the nanosockets, can you elaborate more about the folder path? thanks


    update 1:

    i tried with empty project, Contents folder need to be located in the same folder with the executable. It worked !

    but somehow it still not working in the real project, maybe there is some miss configurations messing with library lookup path. at least there is hope to make the server build work. Thanks !

    update 2:

    it seems like the error only happens in il2cpp scripting backend, the empty project i tested was using mono after i rebuild it with il2cpp the same error happened. still no idea how to fix it

  • babyfish0226
    edited February 2023 Answer ✓

    It's work in iOS but not work in tvOS. Anything news ? thanks.

    Update:

    Finally i found the solution. Go to /Photon/Fusion/Plugins/NanoSockets/NanoSockets/Dynamic and click NanoSocket.dll and check the tvOS in import Settings. Then it work.

  • Update2:

    I can build the xcode project that unity export normally but the fusion network funciotns all not work that game run on my Apple TV.

  • Update2:

    Now i can build xcode project that unity export normally but all fusion network functions not work that run my game on Apple TV.

  • update3:

    I downloaded the nanosocket source code from GitHub and used CMake and ios-cmake to build the new libnanosocket_static.a for tvOS. Finally, I put the libnanosocket_static.a file into Unity and everything worked fine. Thanks, God.

  • Glad you found a solution.

    As far as I can see, build  585 should have tvOS support. Let us know if you still need your own lib beyond that version.

  • babyfish0226
    Answer ✓

    I found that version of Fusion SDK 1.1.5 F2 Build 643 has added the tvOS library. Thank you!

  • Hi All

    I am still having this problem. I am using Dedicated Server on M1 Macbook. Any idea how to fix it?

    I am following dedicated server tutorial here https://doc.photonengine.com/fusion/current/technical-samples/dedicated-server/fusion-dedicated-server

    Here is my error (I believe)

    For LibnanoSocketConfig, this is what i am using