Search Unity

4.6 iOS 64-bit beta

Discussion in 'iOS and tvOS' started by jonas-echterhoff, Jan 12, 2015.

  1. iTris666

    iTris666

    Joined:
    Jun 12, 2012
    Posts:
    11
    Hi,

    A sample project with a networkView on the camera and a RPC call in a simple script doesn't compile with Unity 4.6.1 p5 using IL2CPP.

    I posted a bug report. Is it an undocumented known limitation ? Does the latest Unity 5 beta support networkView RPCs on iOS 64 ?
     
  2. joncham

    joncham

    Unity Technologies

    Joined:
    Dec 1, 2011
    Posts:
    276
    Yes, this is an undocumented known limitation. The NetworkView related code makes extensive use of mono specific APIs, and we have not migrated that to the il2cpp based backend ATM.
     
  3. tcossairt

    tcossairt

    Joined:
    Dec 5, 2013
    Posts:
    129
    I'm getting a number of linker errors after upgrading and using IL2CPP. Are these unspported features right now, and if so, whats the timeline for supporting them?

    Undefined symbols for architecture armv7:

    "Register_UnityEngine_Component_get_networkView()", referenced from:

    RegisterAllStrippedInternalCalls() in UnityICallRegistration.o

    "Register_UnityEngine_BitStream_INTERNAL_CALL_Serializev()", referenced from:

    RegisterAllStrippedInternalCalls() in UnityICallRegistration.o

    "Register_UnityEngine_NetworkView_Internal_GetViewID()", referenced from:

    RegisterAllStrippedInternalCalls() in UnityICallRegistration.o

    "Register_UnityEngine_NetworkViewID_INTERNAL_CALL_Internal_IsMine()", referenced from:

    RegisterAllStrippedInternalCalls() in UnityICallRegistration.o

    "Register_UnityEngine_BitStream_get_isWriting()", referenced from:

    RegisterAllStrippedInternalCalls() in UnityICallRegistration.o

    "Register_UnityEngine_NetworkViewID_INTERNAL_CALL_Internal_Compare()", referenced from:

    RegisterAllStrippedInternalCalls() in UnityICallRegistration.o

    "Register_UnityEngine_BitStream_Serializef()", referenced from:

    RegisterAllStrippedInternalCalls() in UnityICallRegistration.o

    "Register_UnityEngine_NetworkViewID_INTERNAL_CALL_Internal_GetString()", referenced from:

    RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
     
    Jamie_Rabbit_Choi and waspswarm like this.
  4. FredRodrigue

    FredRodrigue

    Joined:
    May 24, 2013
    Posts:
    6
    I get that error when the application try to instantiate a gameobject with a monobehavior that came from a DLL.

    Code (CSharp):
    1. A script behaviour has a different serialization layout when loading. (Read 24 bytes but expected 72 bytes)
    2. Did you #ifdef UNITY_EDITOR a section of your serialized properties in any of your scripts?
    3. (Filename: /Applications/buildAgent/work/d63dfc6385190b60/Runtime/Serialize/SerializedFile.cpp Line: 1170)
    I've reproduced it in a simple project, here's the bug report # : 663039.
     
  5. Hamcat

    Hamcat

    Joined:
    Nov 7, 2013
    Posts:
    4
    I've removed all the assets(textures, models, scenes, 3rd party plugins) except scripts, but still can't build my project with 4.6.1p5
    Here is the error log:

     
  6. Mantas-Puida

    Mantas-Puida

    Joined:
    Nov 13, 2008
    Posts:
    1,864
    Please file a bug report and attach your stripped down project to it.
    Thanks!
     
  7. RalphH

    RalphH

    Administrator

    Joined:
    Dec 22, 2011
    Posts:
    592
    Would you mind telling us which plugins ? It might help us identifying several ways to fix.
     
  8. kyleshay

    kyleshay

    Joined:
    Jun 17, 2014
    Posts:
    2
    having an issue with the BinaryFormatter class Deserialize(Filestream f) function.

    we are using something like this:
    Code (CSharp):
    1. BinaryFormatter bf = new BinaryFormatter ();
    2. FileStreamfile = File.Open (Application.persistentDataPath + "/versionInfo.dat", FileMode.Open);
    3. _versionData = (VersionData)bf.Deserialize (file);
    and xcode is returning this error message when it hits the .Deserialize() function:
    stack trace:
    Code (CSharp):
    1. NotSupportedException: Tools/il2cpp/il2cpp/libil2cpp/icalls/mscorlib/System.Runtime.Remoting.Activation/ActivationServices.cpp(28) : Unsupported internal call for IL2CPP:ActivationServices::AllocateUninitializedClassInstance - System.Runtime.Remoting is not supported.
    2.   at System.Runtime.Remoting.Activation.ActivationServices.AllocateUninitializedClassInstance (System.Type type) [0x00000] in <filename unknown>:0
    3.   at System.Runtime.Serialization.FormatterServices.GetUninitializedObject (System.Type type) [0x00000] in <filename unknown>:0
    4.   at System.Runtime.Serialization.Formatters.Binary.ObjectReader.ReadObjectContent (System.IO.BinaryReader reader, System.Runtime.Serialization.Formatters.Binary.TypeMetadata metadata, Int64 objectId, System.Object& objectInstance, System.Runtime.Serialization.SerializationInfo& info) [0x00000] in <filename unknown>:0
    5.   at System.Runtime.Serialization.Formatters.Binary.ObjectReader.ReadObjectInstance (System.IO.BinaryReader reader, Boolean isRuntimeObject, Boolean hasTypeInfo, Int64& objectId, System.Object& value, System.Runtime.Serialization.SerializationInfo& info) [0x00000] in <filename unknown>:0
    6.   at System.Runtime.Serialization.Formatters.Binary.ObjectReader.ReadObject (BinaryElement element, System.IO.BinaryReader reader, Int64& objectId, System.Object& value, System.Runtime.Serialization.SerializationInfo& info) [0x00000] in <filename unknown>:0
    7.   at System.Runtime.Serialization.Formatters.Binary.ObjectReader.ReadObject (BinaryElement element, System.IO.BinaryReader reader, Int64& objectId, System.Object& value, System.Runtime.Serialization.SerializationInfo& info) [0x00000] in <filename unknown>:0
    8.   at System.Runtime.Serialization.Formatters.Binary.ObjectReader.ReadNextObject (BinaryElement element, System.IO.BinaryReader reader) [0x00000] in <filename unknown>:0
    9.   at System.Runtime.Serialization.Formatters.Binary.ObjectReader.ReadObjectGraph (BinaryElement elem, System.IO.BinaryReader reader, Boolean readHeaders, System.Object& result, System.Runtime.Remoting.Messaging.Header[]& headers) [0x00000] in <filename unknown>:0
    10.   at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.NoCheckDeserialize (System.IO.Stream serializationStream, System.Runtime.Remoting.Messaging.HeaderHandler handler) [0x00000] in <filename unknown>:0
    11.   at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize (System.IO.Stream serializationStream) [0x00000] in <filename unknown>:0
    12.   at SaveManager.Load () [0x00000] in <filename unknown>:0
    13.   at Main.Start () [0x00000] in <filename unknown>:0
    any suggestions?

    has anyone else seen this?
     
  9. tcossairt

    tcossairt

    Joined:
    Dec 5, 2013
    Posts:
    129
    Also, with the new patch update (4.6.1p5) we are seeing a linking error using the latest WWise plugin and IL2CPP, but only for arm7 architecture (not arm64).

    ld: b/bl/blx thumb2 branch out of range (21233872 max is +/-16MB): from __ZN11CAkBkgndJobC2Ev (0x00B4DB8C) to ___stack_chk_fail@0x00000000 (0x01F8DD10) in '__ZN11CAkBkgndJobC2Ev' from /Users/myuser/Builds/iOS/ourgame/Libraries/libAkSoundEngine.a(AkAACJobsMgr.o) for architecture armv7

    clang: error: linker command failed with exit code 1 (use -v to see invocation)

    Is this a Unity side thing or a Wwise thing that needs updated? (Or something I'm doing wrong? :) )
     
  10. cojo71

    cojo71

    Joined:
    Aug 19, 2014
    Posts:
    26
    We are getting the following XCode linker errors, somewhat similar the NetworkView errors mentioned earlier in the thread, on both armv7 and arm64 architectures:

    This is just a hunch, but can you confirm if having our own C# classes named "State" and "StateMachine" in our assembly is conflicting with some internal State / StateMachine classes that might exist for the Animation system or another system? We have such classes in our own code (but don't use Unity Animation etc.). I ask this because the UnityClassRegistration.cpp seems to only reference internal Unity classes, but the only State / StateMachine we are using are our own.

    EDIT: Update on this, refactoring our State / StateMachine to BaseState / BaseStateMachine did indeed fix this. I know this is still somewhat beta, and you all are working hard, but this is really something that should probably be warning / error'd at the static analysis level in the editor if it isn't something you expect to have fixed within the next week or two anyways. Highly unobvious / kinda hackish that this is how class registration is being handled and I'm sure you're going to continue to see a lot more of these issues on classname collisions in the future.

    Appreciate your insight on this!
    -cojo
     
    Last edited: Jan 27, 2015
  11. FrenzooInfo

    FrenzooInfo

    Joined:
    May 2, 2014
    Posts:
    45
    Yeah, we do see the issue with the mono backend while linking, we had to configure libjpeg with shortnames, in order to avoid linking errors. I thought i'd chime in as a nice to have :)
     
  12. Steazy

    Steazy

    Joined:
    Apr 25, 2014
    Posts:
    2
    Using the IL2CPP backend my project consistently fails to build.

    It exports an XCode project but when attempting to open the project the error "Unity-iPhone.xcodeproj cannot be opened because the project file cannot be parsed." is presented from XCode.

    I've tried stripping out all the 3rd party libraries except NGUI in case one of them is mucking up stuff, with no avail. There were some issues w/ generics IL2CPP.exe warned me about that I was able to work around. Now it emits no errors (that I can find) and seems to have succeeded minus the fact that the XCode project is unusable.

    Any tips on where to start? Upgrading to 5.0 is not realistic for the project and I suspect the 64bit support for 4.6 will be pretty lackluster so I'm accepting that I'll need to dump a bunch of time into sorting this out (wooo cross-platform) :(
     
  13. FrenzooInfo

    FrenzooInfo

    Joined:
    May 2, 2014
    Posts:
    45
    Still problems with threading. P5 now crashes in il2cpp::eek:s::Atomic::Exchange64(...) inside OSAtomicCompareAndSwap64Barrier with EXC_BAD_ACCESS(code=EXC_ARM_DA_ALIGN) when targeting ARM7. Had to hack the bad cpp code generation in order to continue testing.
     
  14. Umai

    Umai

    Joined:
    Jun 18, 2013
    Posts:
    74

    I've seen problems with Serialisation and BinaryFormatter in particular, you can read about it a few pages up in this thread - UT are on it and supposedly fixes (?) it in the beta AFTER p5... Fingers crossed.
     
  15. FrenzooInfo

    FrenzooInfo

    Joined:
    May 2, 2014
    Posts:
    45
    Under ARM64 it just hangs. Assumes that it's waiting and not exiting as opposed to armv7 where it exited the monitor but crashes
     
  16. Hamcat

    Hamcat

    Joined:
    Nov 7, 2013
    Posts:
    4
    Project uploaded
    Case #667147
     
  17. ArjunN

    ArjunN

    Joined:
    Jan 18, 2013
    Posts:
    21
    Hi,

    I tried Unity 4.6.1p5 and it doesn't have the issue with TripleDES any more, so thanks for fixing that bug!

    However, it still has issues dealing with nullable types (case 664066). Any idea when a fix is planned for this?

    Thanks,
    Arjun
     
  18. Wiliz

    Wiliz

    Joined:
    Feb 18, 2014
    Posts:
    20
    Using the 'Append' option when building in Unity gave me this error message as well in Xcode. Using the 'Replace' option instead worked.
     
  19. joncham

    joncham

    Unity Technologies

    Joined:
    Dec 1, 2011
    Posts:
    276
    Nullable types recently got some fixes. It should work better in an upcoming release.
     
  20. joncham

    joncham

    Unity Technologies

    Joined:
    Dec 1, 2011
    Posts:
    276
    The alignment issues with monitors on ARMv7 have been fixed for a future release.
     
  21. joncham

    joncham

    Unity Technologies

    Joined:
    Dec 1, 2011
    Posts:
    276
    A bug was just fixed related to monitors and not correctly exiting; it will be included in a future release. A bug report would allow us to ensure it fixes your particular issue.
     
  22. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    We have been testing our plugin today with IL2CPP + ARM64 (4.6.1p5). We get the following error:

    NotSupportedException: Cannot marshal type 'System.Runtime.InteropServices.HandleRef'.

    Can we expect this to be solved? (We have hundreds of HandleRefs in the code)
    Apart from that we also get:

    Mono Class HideInInspector couldn't be found! This might lead to random crashes later on!

    Thanks!
     
  23. joncham

    joncham

    Unity Technologies

    Joined:
    Dec 1, 2011
    Posts:
    276
    HandleRef has special marshaling behavior that we currently do not support. It should not be hard to support, but please file a bug if possible for us to help prioritize and verify the changes.
     
  24. Steazy

    Steazy

    Joined:
    Apr 25, 2014
    Posts:
    2
    I stopped using "Append" a long time ago due erratic behavior such as this... all the builds I tested were using "Replace" (or building to a new folder).
     
  25. cojo71

    cojo71

    Joined:
    Aug 19, 2014
    Posts:
    26
    Parse 1.3.3 is not working with Bytecode Stripping enabled on il2cpp backend. I've already submitted this to Facbeook here: https://developers.facebook.com/bugs/1413897332236082/ but I'm not sure if it's something they need to fix or a legit il2cpp Issue. Here is a shortened stacktrace / sample code around the EXC_BAD_ACCESS in case it's helpful:
    This is using the following link.xml file and Stripping level set to Byte Code (required supposedly by il2cpp?? or perhaps I've misunderstood that?):
    Are you able to tell from this what the problem is / if Parse / Unity needs a new release to fix this or if there is a workaround?

    Thanks!
     
  26. TeorikDeli

    TeorikDeli

    Joined:
    Apr 6, 2014
    Posts:
    149
    Is this a bug (probably) or am I doing something wrong? Unity 4.6.1p5 with IL2CPP. I'm using SecurePlayerPrefs and there was no problem so far.

    SecurePlayerPrefs:
    Code (CSharp):
    1. public static bool HasKey(string key)
    2.     {
    3.         string hashedKey = GenerateMD5(key);
    4.         bool hasKey = PlayerPrefs.HasKey(hashedKey);
    5.         return hasKey;
    6.     }
    7.  
    8. static string GenerateMD5(string text)
    9.     {
    10.         var md5 = MD5.Create();
    11.         byte[] inputBytes = Encoding.UTF8.GetBytes(text);
    12.         byte[] hash = md5.ComputeHash(inputBytes);
    13.        
    14.         // step 2, convert byte array to hex string
    15.         var sb = new StringBuilder();
    16.         for (int i = 0; i < hash.Length; i++)
    17.         {
    18.             sb.Append(hash[i].ToString("X2"));
    19.         }
    20.         return sb.ToString();
    21.     }
    I'm just calling this in girisKontrol.Awake():
    Code (JavaScript):
    1. if(!SecurePlayerPrefs.HasKey("BlaBla")) {
    2.   //some other codes...
    3. }
     
  27. DungeonMason

    DungeonMason

    Joined:
    Jan 28, 2015
    Posts:
    119
    We are making a build with il2cpp setting in 4.6.1. p5 and get these errors in xcode. Is this happening "webRequest API" doesn't work in il2cpp setting?

    Code (CSharp):
    1. Undefined symbols for architecture armv7:
    2.   "Register_UnityEngine_BitStream_Serializeb()", referenced from:
    3.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    4.   "Register_UnityEngine_BitStream_Serializec()", referenced from:
    5.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    6.   "Register_UnityEngine_BitStream_INTERNAL_CALL_Serializev()", referenced from:
    7.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    8.   "Register_UnityEngine_BitStream_Serializef()", referenced from:
    9.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    10.   "Register_UnityEngine_BitStream_Serializei()", referenced from:
    11.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    12.   "Register_UnityEngine_GameObject_get_networkView()", referenced from:
    13.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    14.   "Register_UnityEngine_MasterServer_get_port()", referenced from:
    15.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    16.   "Register_UnityEngine_MasterServer_get_dedicatedServer()", referenced from:
    17.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    18.   "Register_UnityEngine_MasterServer_get_updateRate()", referenced from:
    19.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    20.   "Register_UnityEngine_MasterServer_get_ipAddress()", referenced from:
    21.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    22.   "Register_UnityEngine_MasterServer_RegisterHost()", referenced from:
    23.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    24.   "Register_UnityEngine_MasterServer_set_dedicatedServer()", referenced from:
    25.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    26.   "Register_UnityEngine_MasterServer_PollHostList()", referenced from:
    27.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    28.   "Register_UnityEngine_Network_HavePublicAddress()", referenced from:
    29.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    30.   "Register_UnityEngine_Network_get_isMessageQueueRunning()", referenced from:
    31.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    32.   "Register_UnityEngine_MasterServer_UnregisterHost()", referenced from:
    33.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    34.   "Register_UnityEngine_Network_get_isServer()", referenced from:
    35.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    36.   "Register_UnityEngine_MasterServer_set_port()", referenced from:
    37.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    38.   "Register_UnityEngine_Network_CloseConnection()", referenced from:
    39.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    40.   "Register_UnityEngine_Network_Internal_GetPlayer()", referenced from:
    41.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    42.   "Register_UnityEngine_Network_DestroyPlayerObjects()", referenced from:
    43.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    44.   "Register_UnityEngine_Network_set_sendRate()", referenced from:
    45.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    46.   "Register_UnityEngine_Network_get_isClient()", referenced from:
    47.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    48.   "Register_UnityEngine_Network_GetAveragePing()", referenced from:
    49.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    50.   "Register_UnityEngine_MasterServer_RequestHostList()", referenced from:
    51.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    52.   "Register_UnityEngine_Network_InitializeSecurity()", referenced from:
    53.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    54.   "Register_UnityEngine_NetworkPlayer_Internal_GetExternalIP()", referenced from:
    55.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    56.   "Register_UnityEngine_Network_get_minimumAllocatableViewIDs()", referenced from:
    57.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    58.   "Register_UnityEngine_Network_SetLevelPrefix()", referenced from:
    59.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    60.   "Register_UnityEngine_MasterServer_ClearHostList()", referenced from:
    61.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    62.   "Register_UnityEngine_Network_set_incomingPassword()", referenced from:
    63.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    64.   "Register_UnityEngine_Network_set_isMessageQueueRunning()", referenced from:
    65.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    66.   "Register_UnityEngine_Network_set_minimumAllocatableViewIDs()", referenced from:
    67.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    68.   "Register_UnityEngine_NetworkViewID_INTERNAL_CALL_Internal_GetString()", referenced from:
    69.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    70.   "RegisterClass_NetworkView()", referenced from:
    71.       RegisterAllClasses() in UnityClassRegistration.o
    72.   "Register_UnityEngine_Network_Internal_GetTime()", referenced from:
    73.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    74.   "Register_UnityEngine_Network_Internal_ConnectToSingleIP()", referenced from:
    75.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    76.   "Register_UnityEngine_Network_get_maxConnections()", referenced from:
    77.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    78.   "Register_UnityEngine_Network_get_peerType()", referenced from:
    79.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    80.   "Register_UnityEngine_Network_Disconnect()", referenced from:
    81.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    82.   "Register_UnityEngine_Network_get_sendRate()", referenced from:
    83.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    84.   "Register_UnityEngine_Network_InitializeServer()", referenced from:
    85.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    86.   "Register_UnityEngine_NetworkViewID_get_unassigned()", referenced from:
    87.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    88.   "Register_UnityEngine_NetworkPlayer_Internal_GetPort()", referenced from:
    89.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    90.   "Register_UnityEngine_NetworkPlayer_Internal_GetExternalPort()", referenced from:
    91.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    92.   "Register_UnityEngine_MasterServer_set_ipAddress()", referenced from:
    93.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    94.   "Register_UnityEngine_Network_get_connections()", referenced from:
    95.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    96.   "Register_UnityEngine_Network_set_logLevel()", referenced from:
    97.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    98.   "Register_UnityEngine_NetworkViewID_INTERNAL_CALL_Internal_GetOwner()", referenced from:
    99.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    100.   "Register_UnityEngine_NetworkView_Internal_GetViewID()", referenced from:
    101.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    102.   "Register_UnityEngine_BitStream_get_isWriting()", referenced from:
    103.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    104.   "Register_UnityEngine_NetworkPlayer_Internal_GetPlayerIndex()", referenced from:
    105.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    106.   "Register_UnityEngine_NetworkPlayer_Internal_GetLocalGUID()", referenced from:
    107.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    108.   "Register_UnityEngine_Network_INTERNAL_CALL_Internal_RemoveRPCs()", referenced from:
    109.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    110.   "Register_UnityEngine_Network_INTERNAL_CALL_Instantiate()", referenced from:
    111.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    112.   "Register_UnityEngine_Network_set_maxConnections()", referenced from:
    113.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    114.   "Register_UnityEngine_NetworkPlayer_Internal_GetLocalIP()", referenced from:
    115.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    116.   "Register_UnityEngine_NetworkPlayer_Internal_GetLocalPort()", referenced from:
    117.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    118.   "Register_UnityEngine_NetworkViewID_INTERNAL_CALL_Internal_Compare()", referenced from:
    119.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    120.   "Register_UnityEngine_NetworkViewID_INTERNAL_CALL_Internal_IsMine()", referenced from:
    121.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    122.   "Register_UnityEngine_NetworkPlayer_Internal_GetIPAddress()", referenced from:
    123.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    124.   "Register_UnityEngine_Network_GetLastPing()", referenced from:
    125.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    126.   "Register_UnityEngine_BitStream_INTERNAL_CALL_Serializeq()", referenced from:
    127.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    128.   "Register_UnityEngine_NetworkPlayer_Internal_GetGUID()", referenced from:
    129.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    130.   "Register_UnityEngine_MasterServer_set_updateRate()", referenced from:
    131.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    132.   "Register_UnityEngine_NetworkView_Internal_RPC()", referenced from:
    133.       RegisterAllStrippedInternalCalls() in UnityICallRegistration.o
    134. ld: symbol(s) not found for architecture armv7
     
    waspswarm likes this.
  28. joncham

    joncham

    Unity Technologies

    Joined:
    Dec 1, 2011
    Posts:
    276
    Are you using a NetworkView? It is not currently supported with the IL2CPP scripting backend.

    This is distinct from web requests APIs not being available. There are plans to support web requests in the near future, but I am not sure about NetworkView support at the moment.
     
  29. joncham

    joncham

    Unity Technologies

    Joined:
    Dec 1, 2011
    Posts:
    276
    I believe this is a stripping issue related to the use of the MD5 class. Can you please file a bug so we can take a look at this?
     
  30. JJC1138

    JJC1138

    Joined:
    Feb 23, 2012
    Posts:
    89
    IL2CPP in 4.6.1p5 generates code that fails to compile in Xcode when I reference the typeof an unbound generic inheriting from MonoBehaviour:

    Code (CSharp):
    1. using UnityEngine;
    2.  
    3. class SomeGenericClassInheritingFromMonoBehaviour<T> : MonoBehaviour {}
    4.  
    5. class SomeClass {
    6.  
    7.     static void Method() {
    8.         typeof(SomeGenericClassInheritingFromMonoBehaviour<>).ToString();
    9.     }
    10.  
    11. }
    The Unity build succeeds, but then the compilation fails in Xcode with errors like:
    /Users/Jon/Work/Unity Play/IL2CPP Bug/iOS Build/Classes/Native/GenericMethods0.cpp:147:16: Unknown type name 'AssemblyU002DCSharp_SomeGenericClassInheritingFromMonoBehaviour_1'

    That example is as minimal as I could get it. The code generated compiles fine if you don't take the typeof of the unbound generic, or if the generic has a regular C# class as its base type, so this seems extremely specific!

    I filed a bug with a minimal test project (essentially just the code above) as case 667481.
     
    Last edited: Jan 28, 2015
  31. JoshPeterson

    JoshPeterson

    Unity Technologies

    Joined:
    Jul 21, 2014
    Posts:
    6,930
    @cojo71
    I've actually merged a fix for this problem which has landed in our next release. Please try this again with your original StateMachine names in the 4.6.2 release. It should be corrected.
     
  32. JoshPeterson

    JoshPeterson

    Unity Technologies

    Joined:
    Jul 21, 2014
    Posts:
    6,930
    @Steazy

    We've not seen this before when the "Replace" option is used. Can you submit this project with a bug? Thanks.
     
  33. JoshPeterson

    JoshPeterson

    Unity Technologies

    Joined:
    Jul 21, 2014
    Posts:
    6,930
    @cojo71

    Does this same project work with iOS/Mono? If so, then this is definitely a bug in IL2CPP. Otherwise it is a bug elsewhere (maybe also in Unity).
     
  34. JoshPeterson

    JoshPeterson

    Unity Technologies

    Joined:
    Jul 21, 2014
    Posts:
    6,930
    @Alex2

    Yes, we are actually investigating this issue now. We don't have a fix yet, but hope too soon.
     
  35. JoshPeterson

    JoshPeterson

    Unity Technologies

    Joined:
    Jul 21, 2014
    Posts:
    6,930
    @JJC1138

    Thanks, this definitely should work. We will have a look at this bug.
     
    JJC1138 likes this.
  36. TeorikDeli

    TeorikDeli

    Joined:
    Apr 6, 2014
    Posts:
    149
    OK, I opened case 667695. Thanks.
     
  37. jdesantos

    jdesantos

    Joined:
    May 24, 2013
    Posts:
    312
    Case 667779. Thanks!
     
  38. thylaxene

    thylaxene

    Joined:
    Oct 10, 2005
    Posts:
    716
    Sorry if this already been asked. But has audio streaming from disk been fixed in p5?
     
  39. Mantas-Puida

    Mantas-Puida

    Joined:
    Nov 13, 2008
    Posts:
    1,864
    Yes, it should be fixed
     
  40. thylaxene

    thylaxene

    Joined:
    Oct 10, 2005
    Posts:
    716
  41. cojo71

    cojo71

    Joined:
    Aug 19, 2014
    Posts:
    26
    Yes, this project works with normal iOS Mono scripting backend in both 4.5.5 and 4.6.1p5, so it sounds like it is an il2cpp issue - are you able to reproduce this with an empty project initializing Facebook / Parse SDKs, or do you need an example project?
     
  42. drawcode

    drawcode

    Joined:
    Jul 21, 2008
    Posts:
    72
    I filed this as a bug report as I was able to reproduce with just the code and the bug report is under GB instead or the full 8GB project.

    Bug report # 667818

    The main linking problem is related to json serialization / reflection / methodinfo. We use a version of LitJson in a namespace called Engine.Data.Json which may be a component of the problem.

    Errors on linking appear as (disregard the linking errors on TestFlight an older version, and NetworkView which is a known issue on 4.6.1p5 -- hopefully networking is ported to 4.x though):

    "_AssemblyU002DCSharp_Engine_Data_Json_JsonMapper_m_ToObject_AssemblyU002DCSharp_GameCustomization_mgp0_mscorlib_System_String_MethodInfo", referenced from:
    AssemblyU002DCSharp_GameCustomizations_RGCTXData in Bulk_Assembly-CSharp_0.o
    AssemblyU002DCSharp_AssemblyU002DCSharp_BaseGameCustomizations_1_AssemblyU002DCSharp_GameCustomization_git_RGCTXData in Bulk_Generics_18.o
    AssemblyU002DCSharp_AssemblyU002DCSharp_DataObjects_1_AssemblyU002DCSharp_GameCustomization_git_RGCTXData in Bulk_Generics_18.o
     
    Last edited: Jan 29, 2015
  43. invicticide

    invicticide

    Joined:
    Nov 15, 2009
    Posts:
    109
    Took me forever to circle back to and isolate these issues, but finally, case 667878 includes a stripped-down sample project with three repros:
    • System.Reflection.FieldInfo.GetValue() crashes when called on a value that's declared as const
    • System.Reflection.MethodInfo.GetCustomAttributes() throws an exception when called on a method which has the [_DllImport] attribute assigned
    • If an exception occurs a MonoBehaviour's Awake, but execution continues, that MonoBehaviour's Update will never be called thereafter
    I know it's bad QA form to combine more than one bug into a single issue, but the bug reporter uploader was taking forever and the same (small) project repros all three issues clearly, so... please forgive me? :p

    Oh and BTW, these were on 4.6.1p5.
     
  44. Banderous

    Banderous

    Joined:
    Dec 25, 2011
    Posts:
    669
    I've submitted 667982 which concerns calling back into script code from a system (non Unity) thread.

    When running on such a thread, calling ToString() on a primitive like double causes a crash; it seems to be looking for data associated with the thread that isn't there.

    This works fine with the mono runtime, but is this a bug with IL2CPP or something that was never officially supported?
     
  45. joncham

    joncham

    Unity Technologies

    Joined:
    Dec 1, 2011
    Posts:
    276
    Mono automatically attaches native threads that call into managed code. We currently do not that do that for IL2CPP.

    As a temporary workaround you could try calling the following on that native thread:

    Code (csharp):
    1. Il2CppThread* yourThread = il2cpp_thread_attach (il2cpp_domain_get ());
    2. // your logic for this thread goes here, where you call into managed code
    3. il2cpp_thread_detach (yourThread);
     
  46. FredRodrigue

    FredRodrigue

    Joined:
    May 24, 2013
    Posts:
    6
    Any update for that issue? It's still occurring with Unity 4.6.2f1.
     
  47. Mantas-Puida

    Mantas-Puida

    Joined:
    Nov 13, 2008
    Posts:
    1,864
    We are still fixing it. You probably could work around it with link.xml for your custom assembly + that specific type.
     
  48. Simie

    Simie

    Joined:
    Oct 26, 2012
    Posts:
    456
    I'm still getting crashes with Attribute.GetCustomAttribute in 4.6.2. My case number was 666206. Is this supposed to be fixed in this version? The changelog seemed to suggest it would be.
     
  49. Deleted User

    Deleted User

    Guest

    Downloaded 4.6.2 and noticed the same thing: Lots of duplicate symbols on Xcode 6.1.1. Is there any way around this?

    Code (CSharp):
    1. duplicate symbol _adler32 in:
    2.     /Users/jyrikilpelainen/Documents/_Unity3D/Tiltagon/Project/_Builds/iOS/Beta/0.9.9.1-4/tiltagon/Libraries/libiPhone-lib.a(adler32.o)
    3. duplicate symbol _get_crc_table in:
    4.     /Users/jyrikilpelainen/Documents/_Unity3D/Tiltagon/Project/_Builds/iOS/Beta/0.9.9.1-4/tiltagon/Libraries/libiPhone-lib.a(crc32.o)
    5. duplicate symbol _crc32 in:
    6.     /Users/jyrikilpelainen/Documents/_Unity3D/Tiltagon/Project/_Builds/iOS/Beta/0.9.9.1-4/tiltagon/Libraries/libiPhone-lib.a(crc32.o)
    7. duplicate symbol _deflateInit2_ in:
    8.     /Users/jyrikilpelainen/Documents/_Unity3D/Tiltagon/Project/_Builds/iOS/Beta/0.9.9.1-4/tiltagon/Libraries/libiPhone-lib.a(deflate.o)
    9. duplicate symbol _deflateReset in:
    10.     /Users/jyrikilpelainen/Documents/_Unity3D/Tiltagon/Project/_Builds/iOS/Beta/0.9.9.1-4/tiltagon/Libraries/libiPhone-lib.a(deflate.o)
    11. duplicate symbol _deflateEnd in:
    12.     /Users/jyrikilpelainen/Documents/_Unity3D/Tiltagon/Project/_Builds/iOS/Beta/0.9.9.1-4/tiltagon/Libraries/libiPhone-lib.a(deflate.o)
    13. duplicate symbol _deflate in:
    14.     /Users/jyrikilpelainen/Documents/_Unity3D/Tiltagon/Project/_Builds/iOS/Beta/0.9.9.1-4/tiltagon/Libraries/libiPhone-lib.a(deflate.o)
    15. duplicate symbol _inflate_fast in:
    16.     /Users/jyrikilpelainen/Documents/_Unity3D/Tiltagon/Project/_Builds/iOS/Beta/0.9.9.1-4/tiltagon/Libraries/libiPhone-lib.a(inffast.o)
    17. duplicate symbol _inflateReset in:
    18.     /Users/jyrikilpelainen/Documents/_Unity3D/Tiltagon/Project/_Builds/iOS/Beta/0.9.9.1-4/tiltagon/Libraries/libiPhone-lib.a(inflate.o)
    19. duplicate symbol _inflateInit2_ in:
    20.     /Users/jyrikilpelainen/Documents/_Unity3D/Tiltagon/Project/_Builds/iOS/Beta/0.9.9.1-4/tiltagon/Libraries/libiPhone-lib.a(inflate.o)
    21. duplicate symbol _inflateInit_ in:
    22.     /Users/jyrikilpelainen/Documents/_Unity3D/Tiltagon/Project/_Builds/iOS/Beta/0.9.9.1-4/tiltagon/Libraries/libiPhone-lib.a(inflate.o)
    23. duplicate symbol _inflate in:
    24.     /Users/jyrikilpelainen/Documents/_Unity3D/Tiltagon/Project/_Builds/iOS/Beta/0.9.9.1-4/tiltagon/Libraries/libiPhone-lib.a(inflate.o)
    25. duplicate symbol _inflateEnd in:
    26.     /Users/jyrikilpelainen/Documents/_Unity3D/Tiltagon/Project/_Builds/iOS/Beta/0.9.9.1-4/tiltagon/Libraries/libiPhone-lib.a(inflate.o)
    27. duplicate symbol _inflate_table in:
    28.     /Users/jyrikilpelainen/Documents/_Unity3D/Tiltagon/Project/_Builds/iOS/Beta/0.9.9.1-4/tiltagon/Libraries/libiPhone-lib.a(inftrees.o)
    29. duplicate symbol __tr_init in:
    30.     /Users/jyrikilpelainen/Documents/_Unity3D/Tiltagon/Project/_Builds/iOS/Beta/0.9.9.1-4/tiltagon/Libraries/libiPhone-lib.a(trees.o)
    31. duplicate symbol __tr_stored_block in:
    32.     /Users/jyrikilpelainen/Documents/_Unity3D/Tiltagon/Project/_Builds/iOS/Beta/0.9.9.1-4/tiltagon/Libraries/libiPhone-lib.a(trees.o)
    33. duplicate symbol __tr_align in:
    34.     /Users/jyrikilpelainen/Documents/_Unity3D/Tiltagon/Project/_Builds/iOS/Beta/0.9.9.1-4/tiltagon/Libraries/libiPhone-lib.a(trees.o)
    35. duplicate symbol __tr_flush_block in:
    36.     /Users/jyrikilpelainen/Documents/_Unity3D/Tiltagon/Project/_Builds/iOS/Beta/0.9.9.1-4/tiltagon/Libraries/libiPhone-lib.a(trees.o)
    37. duplicate symbol __length_code in:
    38.     /Users/jyrikilpelainen/Documents/_Unity3D/Tiltagon/Project/_Builds/iOS/Beta/0.9.9.1-4/tiltagon/Libraries/libiPhone-lib.a(trees.o)
    39. duplicate symbol __dist_code in:
    40.     /Users/jyrikilpelainen/Documents/_Unity3D/Tiltagon/Project/_Builds/iOS/Beta/0.9.9.1-4/tiltagon/Libraries/libiPhone-lib.a(trees.o)
    41. duplicate symbol _z_errmsg in:
    42.     /Users/jyrikilpelainen/Documents/_Unity3D/Tiltagon/Project/_Builds/iOS/Beta/0.9.9.1-4/tiltagon/Libraries/libiPhone-lib.a(zutil.o)
    43. duplicate symbol _zcalloc in:
    44.     /Users/jyrikilpelainen/Documents/_Unity3D/Tiltagon/Project/_Builds/iOS/Beta/0.9.9.1-4/tiltagon/Libraries/libiPhone-lib.a(zutil.o)
    45. duplicate symbol _zcfree in:
    46.     /Users/jyrikilpelainen/Documents/_Unity3D/Tiltagon/Project/_Builds/iOS/Beta/0.9.9.1-4/tiltagon/Libraries/libiPhone-lib.a(zutil.o)
    47. ld: 48 duplicate symbols for architecture armv7
     
  50. JoshPeterson

    JoshPeterson

    Unity Technologies

    Joined:
    Jul 21, 2014
    Posts:
    6,930
    @Jyri Kilpeläinen

    This is fixed locally and the fix is expected to land in 4.6.2p1.