Minimum IOS version?

Options
Hello,

Is it necessary any minimum version of iOS for the PUN to work?
I am testing my application on iOS 5.1.1 and I can not send or receive RPC calls.
But other things like OnPhotonPlayerConnected, OnPhotonPlayerDisconnected, and other callbacks work fine.

Thanks!

Comments

  • Tobias
    Options
    I would assume it's either working completely or not at all. Any version that Unity supports fully should be working.
    The code from our side is the same for all iOS builds, so it must be something in the Engine that's preventing RPCs from happening.
    Maybe you find some hint in the logs what is failing? If you identify any language features that are not supported on 5.x, let me know and we might look into PUN if we can adjust.
  • It works fine on an Ipad/Unity Editor scenario, I can send and receive RPC calls through this scenario.
    But when I test on Ipad/webplayer build it doesn't work, is there any limitation in the communication between iOS and webplayer build?
  • Tobias
    Options
    No. There is no known issue between webplayer or other platforms.
    You could possibly run the Marco Polo Tutorial from the PUN package on both platforms and see if that works. If it does, then it's a project specific issue.
  • Thanks for the response.
    I don't know what is hapenning. It works fine when I run the project in editor.
    When I try to send or receive a RPC call on Ipad/webplayer build scenario I get this message on Xcode console:

    PhotonView with ID 1 has no method "InstantiateRpc" marked with the [RPC](C#) or @RPC(JS) property! Args:

    (Filename: /Applications/buildAgent/work/d3d49558e4d408f4/artifacts/iPhonePlayer-armv7Generated/UnityEngineDebug.cpp Line: 53)

    PhotonView with ID 1 has no method "OnAwakeRPC" marked with the [RPC](C#) or @RPC(JS) property! Args:

    (Filename: /Applications/buildAgent/work/d3d49558e4d408f4/artifacts/iPhonePlayer-armv7Generated/UnityEngineDebug.cpp Line: 53)

    Does it means something?

    Thanks!
  • Tobias
    Options
    This looks like our problem, yes.

    It seems that our code is not able to find those methods you put the RPC attribute on. Then it will fail to call them.
    I'm not sure what causes it, though. It might be a problem in reflection (due to AOT compiling) or something else entirely.

    Are you using Unity Script? Please post your RPC method definition.
    Which Unity version are you using?
    What happens if you export to a newer iOS version? The same?
  • I'm not using Unity Script. Only C#.
    Unity version: 4.3.0
    The same happens when I export to other iOS versions an it just works when I run in editor.
    The RPC list had some methods that I wasn't currently not using that came with Utility Scripts folder from PUN package. I deleted this folder now the RPC list has only the methods that I'm using but now I get this message on Xcode console when I call/receive a RPC call:

    Could not find RPC with index: 5. Going to ignore! Check PhotonServerSettings.RpcList
    Could not find RPC with index: 6. Going to ignore! Check PhotonServerSettings.RpcList

    But in the RPC list the last index is 4(I attached an image).

    Here are two RPC methods that I'm using:

    [code2=csharp][RPC]
    void AvisarAdversario(string palavra, PhotonMessageInfo info)
    {
    NGUITools.SetActive(TelaCorreto,false);
    NGUITools.SetActive(TelaErrado,false);

    if(GerenciadorJogoMultiplayer.jogadaAtual>=GerenciadorJogoMultiplayer.jogadas)
    {
    print ("FINALIZOU JOGO");
    print ("PALAVRAS DO MASTER: "+palavra);
    minhaVez = true;
    statusSalaTXT.text = "[99FF66]É A SUA VEZ";
    NGUITools.SetActive(TelaJogo,false);
    }
    else
    {
    minhaVez = true;
    statusSalaTXT.text = "[99FF66]É A SUA VEZ";
    NGUITools.SetActive(TelaJogo,false);
    }
    }

    [RPC]
    void AvisarMaster(string palavrasAdversario, PhotonMessageInfo info)
    {
    NGUITools.SetActive(TelaCorreto,false);
    NGUITools.SetActive(TelaErrado,false);

    if(GerenciadorJogoMultiplayer.jogadaAtual>=GerenciadorJogoMultiplayer.jogadas+1)
    {
    print ("FINALIZOU JOGO");
    print ("PALAVRAS DO OPONENTE: "+palavrasAdversario);
    mostrarResultados(palavrasAdversario);
    }
    else
    {
    minhaVez = true;
    statusSalaTXT.text = "[99FF66]É A SUA VEZ";
    NGUITools.SetActive(TelaJogo,false);
    relogioPrepara.iniciar();
    }
    }[/code2]

    Thanks!
  • Tobias
    Options
    Click "Refresh RPCs" and it should do.