Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. We have updated the language to the Editor Terms based on feedback from our employees and community. Learn more.
    Dismiss Notice
  3. Join us on November 16th, 2023, between 1 pm and 9 pm CET for Ask the Experts Online on Discord and on Unity Discussions.
    Dismiss Notice

4.6 iOS 64-bit beta

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

  1. cojo71

    cojo71

    Joined:
    Aug 19, 2014
    Posts:
    26
    We are seeing similar:
    I know the release notes mentinoed something about unsupported string reflection stuff... is this it? Will it be fixed in next week's patch?
     
  2. cojo71

    cojo71

    Joined:
    Aug 19, 2014
    Posts:
    26
    Also is there any current workaround for the above bug? Would love to get our games out without having to wait another full patch cycle for this one issue.
     
  3. Lucas-Meijer

    Lucas-Meijer

    Unity Technologies

    Joined:
    Nov 26, 2012
    Posts:
    175
    Hey Andrew, this does not look like a problem we know about, but does look like one we can easily fix if we could take a look at your project. Could you be so kind to file a bug with the project so we can do so? thanks, Lucas
     
  4. Lucas-Meijer

    Lucas-Meijer

    Unity Technologies

    Joined:
    Nov 26, 2012
    Posts:
    175
    @cojo71: we can take a look if we can find a workaround if we can take a look at the project. Could you file a bug with a project that reproduces it, and let us know the casenumber here? thanks, Lucas
     
  5. andrew210

    andrew210

    Joined:
    Apr 23, 2014
    Posts:
    241
    Done, and no more runaway memory issues! However I was having some issues with Lua after building and running, so I tried to change to using NLua however now in Unity itself I'm receiving error (presumably because it's trying to run an exe on my mac)

    If it helps, Byte code stripping is set to disabled right now.

     
    Last edited: Feb 5, 2015
  6. bberryEA

    bberryEA

    Joined:
    Jan 13, 2015
    Posts:
    3
    Still seeing the monitor exit crashes (il2cpp::eek:s::Atomic::Exchange64() context) with 4.6.2p1. Did the reported fix for this just not make '2p1?
     
  7. Lucas-Meijer

    Lucas-Meijer

    Unity Technologies

    Joined:
    Nov 26, 2012
    Posts:
    175
    @andrew210 hey andrew, i'd love to investigate why the stripper is failing for you, but I need access to the project to do so. could you file a bug and attach it so we can investigate? thanks, lucas. (the problem is not running an .exe on your mac, the cause of the error might be more clear further in the log. the interesting part is right after the part you pasted, there should be a callstack of how the stripper crashed which might reveal some more information)
     
  8. Lucas-Meijer

    Lucas-Meijer

    Unity Technologies

    Joined:
    Nov 26, 2012
    Posts:
    175
    @bberryEA no fixes for atomics landed in today's patch release. we really hope to have them for next patch release. it would be great if we could use your project to verify that the crash you are seeing is also one that we have been fixing. if you can do so, it would be great if you could file a bug with a repro project for your crash and post the casenumber here. thanks, Lucas
     
  9. FredDeschenes

    FredDeschenes

    Joined:
    Mar 15, 2013
    Posts:
    21
    I reported 670035 earlier which seems to be the same issue from what I can see in @bberryEA 's post.
     
  10. andrew210

    andrew210

    Joined:
    Apr 23, 2014
    Posts:
    241

    Thank you Lucas and sorry for missing out the useful bit. It was compiling with the original Lua interpreter with 64 bit, but then not running like it should on device. After moving to using NLua it still compiles and runs fine with Mono, but here is the useful bit of where the stripper crashed:

     
  11. joncham

    joncham

    Unity Technologies

    Joined:
    Dec 1, 2011
    Posts:
    276
    Does this code work on mono for ARMv7? I am not very familiar with ObjC, but you are compiling a with a .mm file extension (rather than .m) and I think this may be causing the method name to be mangled C++ style. Can you try building the file with a .m extension instead?
     
  12. JJC1138

    JJC1138

    Joined:
    Feb 23, 2012
    Posts:
    89
    The Enum.IsDefined problem that was reported by @TTG_Seigman and @genius-fx earlier is still happening in 4.6.2p1. I've filed case number 670051 with a trivial test project:
    Code (CSharp):
    1. using System;
    2.  
    3. using UnityEngine;
    4.  
    5. public class TestBehaviour : MonoBehaviour {
    6.  
    7.     public enum SomeEnum { A, B, C }
    8.  
    9.     void Start() {
    10.         int value = 0;
    11.         Debug.Log(Enum.IsDefined(typeof(SomeEnum), value));
    12.     }
    13.    
    14. }
    15.  
    When that's run (on 32-bit or 64-bit devices) it produces the error:
    It works fine with the Mono backend.
     
  13. glacius3000

    glacius3000

    Joined:
    Oct 5, 2012
    Posts:
    69
    Is marshaling int arrays a known issue? It may just be that my method of marshaling int arrays is no longer valid in 64-bit environments.

    Doing something like this wasn't a problem before, now it is.
    Code (CSharp):
    1. public class MarshalTest : MonoBehaviour {
    2.  
    3.     public const int SIZE = 256;
    4.     // Use this for initialization
    5.     void Start ()
    6.     {
    7.         IntPtr arrayPtr;
    8.         int[] managedArray = new int[SIZE];
    9.         int[] unmanagedArray = new int[SIZE];
    10.  
    11.         //giving the array some initial values
    12.         for(int i = 0; i < SIZE; ++i)
    13.             managedArray[i] = i;
    14.  
    15.         //allocating the array in unmanaged space
    16.         arrayPtr = Marshal.AllocHGlobal(sizeof(int)* SIZE);
    17.  
    18.         //copying the managed array into the unmanaged space pointer
    19.         Marshal.Copy(managedArray,0,arrayPtr,SIZE);
    20.  
    21.         //copy the unmanage space array back into managed space
    22.         Marshal.Copy(arrayPtr,unmanagedArray,0,SIZE);
    23.  
    24.         //verifying the data
    25.         Debug.Log("VERIFYING arrayPtr data");
    26.         StringBuilder sb = new StringBuilder();
    27.         for(int i = 0; i < SIZE; ++i)
    28.         {
    29.             sb.AppendLine(unmanagedArray[i].ToString());
    30.         }
    31.         Debug.Log(sb.ToString());
    32.         Debug.Log("END arrayPtr verification");
    33.  
    34.     }
    35. }
    This will print fine up until exactly SIZE/4. Then it will print all zeros.
     
  14. JJC1138

    JJC1138

    Joined:
    Feb 23, 2012
    Posts:
    89
    Before I go hunting and file some more bugs, are Unity networking (RakNet) and sockets supposed to be working in 4.6.2p1? I'm not sure whether the release notes are saying that it's just the linker errors that are fixed, or if RakNet should actually work now? I seem to be able to start a server, but then get lots of weirdness (such as the editor crashing when trying to use it to connect to a server running on iOS) but I've only tested it very briefly so far.
     
    Last edited: Feb 6, 2015
  15. joncham

    joncham

    Unity Technologies

    Joined:
    Dec 1, 2011
    Posts:
    276
    I remember this bug. I don't recall what release it was fixed in, but I can confirm it works as expected in the latest patch release (4.6.2p1).
     
  16. fpuig

    fpuig

    Joined:
    Dec 26, 2012
    Posts:
    18
    Our project is still failing on 4.6.2p1
    We are getting this in the Xcode console:
    The code for UiLogin.GetUniqueID() is:
    Code (csharp):
    1.  
    2. private string GetUniqueId()
    3. {
    4.       string uniqueId = TripleDES.EncryptUnicode(ProductConfig.pApiKey + UtMobileUtilities.GetUniqueID(), ProductConfig.pSecret);
    5.       return uniqueId;
    6. }
    7.  
    TripleDES.cs
    Code (csharp):
    1.  
    2.  public static string EncryptUnicode(stringplaintext, stringkey)
    3.  {
    4.        NotEmpty(key, "key");
    5.  
    6.        if (string.IsNullOrEmpty(plaintext))
    7.        {
    8.            return null;
    9.         }
    10.  
    11.        TripleDESCryptoServiceProviderdesProvider = CreateProviderUnicode(key);
    12.        ICryptoTransformdesEncrypt = desProvider.CreateEncryptor();
    13.  
    14.        byte[] buffer = UnicodeEncoding.Unicode.GetBytes(plaintext);
    15.  
    16.        byte[] tdesBytes = desEncrypt.TransformFinalBlock(buffer, 0, buffer.Length);
    17.        string finalString = Convert.ToBase64String(tdesBytes);
    18.  
    19.        return final String;
    20.  }
    21.  
    22. private static TripleDESCryptoServiceProvider CreateProviderUnicode(stringkey)
    23.  {
    24.        TripleDESCryptoServiceProviderdesProvider = new TripleDESCryptoServiceProvider();
    25.        MD5CryptoServiceProvider md5Provider = new MD5CryptoServiceProvider();
    26.  
    27.        desProvider.Key = md5Provider.ComputeHash(UnicodeEncoding.Unicode.GetBytes(key));
    28.        desProvider.Mode = CipherMode.ECB;
    29.  
    30.        return desProvider;
    31.  }
    32.  
    Is there a known workaround for using TripleDES ?
     
    Last edited: Feb 6, 2015
  17. cojo71

    cojo71

    Joined:
    Aug 19, 2014
    Posts:
    26
    Hi @Lucas Meijer ,
    I just submitted a bug through the Editor with a reproduction project where the details include my forum name and a link to this page.
    Unfortunately as far as I can tell, I was not given a bug ticket number.
    EDIT: Update - the emailer was just slow. Case number is 670080.

    Thanks!
     
    Last edited: Feb 6, 2015
  18. JoshPeterson

    JoshPeterson

    Unity Technologies

    Joined:
    Jul 21, 2014
    Posts:
    6,775
    @malyna

    It looks like your code should work. We translate the DllImport("__Internal") attribute to an extern "C" definition of the function in the generated code. The linker error indicates that the extern we are writing does not match the native function signature.

    Based on the code, it looks like everything is correct though. If you can submit a bug with this project, that might help use track down the cause or find a work-around. Thanks.
     
  19. JoshPeterson

    JoshPeterson

    Unity Technologies

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

    RakNet is not fully working yet, but we wanted to get what we had out to at least move past the linker errors for project that use some of the types in RakNet. We would love to get your project though to see if we can work out the cause of the problem. Can you submit a bug? Thanks.
     
    JJC1138 likes this.
  20. JoshPeterson

    JoshPeterson

    Unity Technologies

    Joined:
    Jul 21, 2014
    Posts:
    6,775
    @glacius3000

    Yes, this absolutely should work, even with a 64-bit build. We had a similar bug that was correct about a month or so ago, but maybe we missed something. Can you submit a bug with this code? That will help us track it via our QA process. We can fix this problem. Thanks.
     
  21. JJC1138

    JJC1138

    Joined:
    Feb 23, 2012
    Posts:
    89
  22. FrenzooInfo

    FrenzooInfo

    Joined:
    May 2, 2014
    Posts:
    44
    Seems like our bugs are still open Case(666823) and Case(667476). Any idea whether they will make it to the next patch release?
    At this current moment, I can't help hunt further bugs as the 2 cases are part of our framework and all our games depend on it.
     
  23. XilenceX

    XilenceX

    Joined:
    Jun 16, 2013
    Posts:
    122
    With 4.6.2p1 the project builds in Xcode, but there are a lot of new warnings. My XCode log is 238 pages long for some reason. So I'll spare you with that, but here are some of the warnings:
    The game runs for a few seconds on my iPod 4, but then crashes. This is the case for both Mono and the new method. The project never crahsed on the iPod when I built it with 4.6.2 in Mono.
     
  24. drawcode

    drawcode

    Joined:
    Jul 21, 2008
    Posts:
    70
    Runtime error in 4.6.2p1
    Bug Report # 670088

    We are compiling and linking with 4.6.2p1 and got past all errors, but have a runtime error. Runs in Mono, however at runtime in IL2CPP it has a problem in our Compress CopyTo method copying deflate/inflate streams.

    The code is using ICSharpCode.SharpZipLib a fairly common C# zip lib.
     
  25. larku

    larku

    Joined:
    Mar 14, 2013
    Posts:
    1,422
    FogBugz: 668511

    EDIT-2:
    The EDIT-1 below is incorrect - seems the PBX error in my post below was masking this issue. I have found a way to work around the PBX error and this error then returned.
    /EDIT-2

    EDIT-1: [INCORRECT]
    I think I resolved this issue but now I get a new issue as I'll post in a new post below. I fixed the error in this post by opening every setting in Edit->Project settings and then saving the project. I also checked/unchecked every option and changed every setting in the player settings - seems to have worked. I'll leave the rest of this post in place in case it assists anyone else with the same issue.
    /EDIT-1

    I've upgraded to Unity 4.6.2p1 and now I have a similar problem as I posted before (FogBugz: 668511) with a different error. Every time I try and append to an existing Xcode project I now get the error (note, replace works fine so it's not my project/code/etc):

    Error building Player: ArgumentNullException: Argument cannot be null.
    Parameter name: key

    (Filename: Line: -1)



    Note: I started with a new fresh Xcode project after upgrading to 4.6.2p1 to avoid any issues caused from 4.6.2 in the project.

    There is nothing of interest in the editor log either (other than the above error message).

    I noted some other user also posted the same issue on page 1 of this thread - yet no progress.

    This is a really serious issue - I can't do build-test turn around, it's gone from taking minutes to over an hour each time and is an absolute dragon lair for introducing errors in the build (could easily forget to set something up).

    FogBugz: 668511

    I'd really appreciate some feedback on this issue - it's killing my development time and making me very nervous about doing a release having to hand build my Xcode project between each build.
     
    Last edited: Feb 6, 2015
  26. larku

    larku

    Joined:
    Mar 14, 2013
    Posts:
    1,422
    FogBugz: 668511

    So I've moved on slightly (to a new error) from my previous post. Now doing a build and appending to an existing Xcode project now gives the error:

    Error building Player: Exception: Invalid PBX project (parsing line 619)

    Again, there is nothing of interest in the editor log either (other than the above error message).

    Xcode: 6.1.1
    Unity: 4.6.2p1

    Note, this is not an IL2CPP build - just a standard mono build.

    Looking in the [project]/Temp/StagingArea/Trampoline/Unity-iPhone.xcodeproj file shows line 619 as:

    shellScript = "rm -rf \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Data\"
    cp -Rf \"$PROJECT_DIR/Data\" \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Data\"";


    It is broken over two lines like is shown here (I think that is the issue).

    The same line (different line number but content is the same) in the Xcode project from a 'Replace' rather than an 'Append' looks like:

    shellScript = "rm -rf \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Data\"\ncp -Rf \"$PROJECT_DIR/Data\" \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Data\"";

    As you can see the '\n' is in place and is not converted to a newline (ie, it's not split over two lines - despite being shown here on two lines).

    Is there anyway I can work around this? I expect this is all just part of the Unity -> Xcode build pipeline - would be great is anyone has any ideas on how to avoid this happening.

    EDIT-1:
    It seems that editing the [project]/Temp/StagingArea/Trampoline/Unity-iPhone.xcodeproj file to replace the newline with a \n appears to enable to build to get further but my issue in the post above then returns - so since the build has still not succeeded I can't be sure this actually works yet.

     
    Last edited: Feb 6, 2015
  27. Tautvydas-Zilys

    Tautvydas-Zilys

    Unity Technologies

    Joined:
    Jul 25, 2013
    Posts:
    10,507
    Hi, 666823 is fixed internally and should land to the next patch release. 667476 is still being looked at.
     
  28. Tautvydas-Zilys

    Tautvydas-Zilys

    Unity Technologies

    Joined:
    Jul 25, 2013
    Posts:
    10,507
    I don't think those warnings are related to crashing. Could you report a bug?
     
  29. rairala

    rairala

    Joined:
    Aug 21, 2014
    Posts:
    4
    Hello,

    FieldInfo.GetRawConstantValue() used to work on iOS, which seems to be unsupported in il2cpp.

    NotSupportedException: Tools/il2cpp/il2cpp/libil2cpp/icalls/mscorlib/System.Reflection/MonoField.cpp(120) : Unsupported internal call for IL2CPP:MonoField::GetRawConstantValue - "This icall is not supported by il2cpp."

    I remember we were told that Reflection would work the same way mono AOT did, am I missing something ?

    Also, my sqlite3 wrappers won't work either. I used a bunch of wrappers like this :
    Code (csharp):
    1.  
    2. [DllImport("sqlite3", EntryPoint = "sqlite3_open")]
    3. open (string filename,out IntPtr database);
    4.  
    I get the following error during runtime :

    NotSupportedException: Tools/il2cpp/il2cpp/libil2cpp/os/Posix/LibraryLoader.cpp(16) : Unsupported internal call for IL2CPP:LibraryLoader::LoadDynamicLibrary - "PInvoke is not yet supported on Posix platforms."

    Will this be fixed anytime soon or should I add another layer of wrappers around the sqlite as a plugin and use that instead ?

    edit : I'm using 4.6.2p1
     
  30. MrEsquire

    MrEsquire

    Joined:
    Nov 5, 2013
    Posts:
    2,712
    Hi guys,

    Just trying to do a update to my game, 4.6.2p1,All is working in editor etc, when trying to run game on Iphone 6 (8.1.3) During the loading of a scene the game is frozen e.g. on main menu click start game, xcode shows no errors. Any advice on how to debug the issue further, not sure what is wrong now.

    IL2CPP
    Universal
    iPhone+iPad
    Graphics: Automatic

    Maybe issue is: API Compatibility Level -> .NET 2.0 and not subset, so something its using causing a freeze

    Thanks
     
    Last edited: Feb 6, 2015
  31. tobiass

    tobiass

    Joined:
    Apr 7, 2009
    Posts:
    3,021
    @Lucas Meijer: I think I reproduced the same errors or very similar ones. A lock() is involved, too.
    Case 670145. You can reproduce it with our asset store package.
     
  32. MrEsquire

    MrEsquire

    Joined:
    Nov 5, 2013
    Posts:
    2,712
    So I forgot the option "build to Simulator" within Unity, I decided to try this out, this is the error message displayed when trying to run on iPhone 6 simulator:

    Code (CSharp):
    1. Warning: Error creating LLDB target at path '/Users/Esquire/Library/Developer/Xcode/DerivedData/Unity-iPhone-drwosbjvhwbszsabohpsiwobgoni/Build/Products/game.app'- using an empty LLDB target which can cause slow memory reads from remote devices.
    2.  
    3. dyld: Symbol not found: _OBJC_CLASS_$_P31
    4.  
    5.   Referenced from: /Users/Esquire/Library/Developer/CoreSimulator/Devices/FC056575-F34B-4539-8C06-50ACBD3A9083/data/Containers/Bundle/Application/CEBF1095-E3B1-4B51-A1ED-38C0C340B1EA/gameapp/game
    6.   Expected in: flat namespace
    7. in /Users/Esquire/Library/Developer/CoreSimulator/Devices/FC056575-F34B-4539-8C06-50ACBD3A9083/data/Containers/Bundle/Application/CEBF1095-E3B1-4B51-A1ED-38C0C340B1EA/game.app/game
    8. (lldb)
    9.  
    10.  
    Using Prime31 Flurry plugin, but I doubt this has anything to do with the freeze?
    Any ideas guys?
     
  33. echo17

    echo17

    Joined:
    Nov 24, 2011
    Posts:
    1,241
    I'm having the same errors using sqlite with IL2CPP as Nadan:

    When using the following pinvoke:

    Code (CSharp):
    1.         [DllImport("sqlite3", EntryPoint = "sqlite3_open")]
    2.         public static extern Result Open(string filename, out IntPtr db);
    3.  
    The same runtime errors that Nadan is experiencing happen to me as well.

    I followed Joskym's suggestion of not using a named library reference:

    But now I get linker errors instead of runtime errors. If I use something like (without entrypoints):

    Code (CSharp):
    1.         [DllImport("__Internal", CallingConvention = CallingConvention.Cdecl)]
    2.         public static extern Result Open(string filename, out IntPtr db);
    3.  
    I get these errors:

    Code (CSharp):
    1. Undefined symbols for architecture arm64:
    2.   "_ColumnBlob", referenced from:
    3.       SQLite3_ColumnBlob_m2124(Object_t8*, IntPtr_t37, int) in Bulk_SimpleSQL_Runtime_0.o
    4.      (maybe you meant: _SQLite3_ColumnBlob_m2124_MethodInfo, __Z24SQLite3_ColumnBlob_m2124P9Object_t810IntPtr_t37i )
    5.   "_ColumnText16", referenced from:
    6.       SQLite3_ColumnText16_m2123(Object_t8*, IntPtr_t37, int) in Bulk_SimpleSQL_Runtime_0.o
    7.      (maybe you meant: _SQLite3_ColumnText16_m2123_MethodInfo, __Z26SQLite3_ColumnText16_m2123P9Object_t810IntPtr_t37i )
    8.   "_ColumnDouble", referenced from:
    9.       SQLite3_ColumnDouble_m2122(Object_t8*, IntPtr_t37, int) in Bulk_SimpleSQL_Runtime_0.o
    10.      (maybe you meant: _SQLite3_ColumnDouble_m2122_MethodInfo, __Z26SQLite3_ColumnDouble_m2122P9Object_t810IntPtr_t37i )
    11.   "_BindBlob", referenced from:
    12.       SQLite3_BindBlob_m2116(Object_t8*, IntPtr_t37, int, Byte_t623*, int, IntPtr_t37) in Bulk_SimpleSQL_Runtime_0.o
    13.      (maybe you meant: __Z22SQLite3_BindBlob_m2116P9Object_t810IntPtr_t37iP9Byte_t623iS1_, _SQLite3_BindBlob_m2116_MethodInfo )
    14.   "_Reset", referenced from:
    15.       SQLite3_Reset_m2105(Object_t8*, IntPtr_t37) in Bulk_SimpleSQL_Runtime_0.o
    16.      (maybe you meant: __Z44Register_UnityEngine_Animator_ResetTriggerIDv, _FT_GlyphLoader_Reset , __Z25InsertCommand_ResetGUI_m8P17InsertCommand_t12 , _DecoderFallbackBuffer_Reset_m5184_MethodInfo , _SortKeyBuffer_Reset_m3838_MethodInfo , __Z41Register_UnityEngine_EdgeCollider2D_Resetv , __Z31iPhone_CUSTOM_ResetNoBackupFlag11ICallString , __Z48Register_UnityEngine_Animator_ResetTriggerStringv , __Z30Animator_CUSTOM_ResetTriggerID29ReadOnlyScriptingObjectOfTypeI8AnimatorEi , __Z41Register_UnityEngine_Input_ResetInputAxesv , __Z27Input_CUSTOM_ResetInputAxesv , __Z64Register_UnityEngine_Camera_INTERNAL_CALL_ResetReplacementShaderv , __Z53Register_UnityEngine_Camera_INTERNAL_CALL_ResetAspectv , __Z66Register_UnityEngine_Camera_INTERNAL_CALL_ResetWorldToCameraMatrixv , __Z50Camera_CUSTOM_INTERNAL_CALL_ResetReplacementShader29ReadOnlyScriptingObjectOfTypeI6CameraE , __Z39Camera_CUSTOM_INTERNAL_CALL_ResetAspect29ReadOnlyScriptingObjectOfTypeI6CameraE , __Z49Camera_CUSTOM_INTERNAL_CALL_ResetProjectionMatrix29ReadOnlyScriptingObjectOfTypeI6CameraE , __Z52Camera_CUSTOM_INTERNAL_CALL_ResetWorldToCameraMatrix29ReadOnlyScriptingObjectOfTypeI6CameraE , __Z50Register_UnityEngine_TerrainData_ResetDirtyDetailsv , _FMOD_DSP_Reset , __Z55GameCenterPlatform_CUSTOM_Internal_ResetAllAchievementsv , __Z96Register_UnityEngine_SocialPlatforms_GameCenter_GameCenterPlatform_Internal_ResetAllAchievementsv , __Z63Register_UnityEngine_Camera_INTERNAL_CALL_ResetProjectionMatrixv , _DecoderReplacementFallbackBuffer_Reset_m5196_MethodInfo , _NumberFormatter_ResetCharBuf_m5923_MethodInfo , _SQLite3_Reset_m2105_MethodInfo , __Z32GUILayoutGroup_ResetCursor_m8888P20GUILayoutGroup_t3120 , __Z44DecoderReplacementFallbackBuffer_Reset_m5196P38DecoderReplacementFallbackBuffer_t1635 , _DeleteCommand_ResetGUIm3_m27_MethodInfo , __Z77DeleteCommand_t15_CustomAttributesCacheGenerator_DeleteCommand_ResetGUIm3_m27P21CustomAttributesCache , _UpdateCommand_ResetGUIm2_m20_MethodInfo , __Z25SortKeyBuffer_Reset_m3838P19SortKeyBuffer_t1352 , __Z45GameCenterPlatform_ResetAllAchievements_m8368P9Object_t8P13Action1_t2949 , __Z25KeysEnumerator_Reset_m851P19KeysEnumerator_t462 , __Z26UpdateCommand_ResetGUI_m17P17UpdateCommand_t14 , __Z22Enumerator_Reset_m1069P15Enumerator_t532 , _Enumerator_Reset_m1069_MethodInfo , _KeysEnumerator_Reset_m851_MethodInfo , __Z35DictionaryNodeEnumerator_Reset_m831P29DictionaryNodeEnumerator_t457 , _DictionaryNodeEnumerator_Reset_m831_MethodInfo , __Z19SQLite3_Reset_m2105P9Object_t810IntPtr_t37 , __Z20Stopwatch_Reset_m883P14Stopwatch_t473 , _GameCenterPlatform_ResetAllAchievements_m8368_MethodInfo , __Z33DecoderFallbackBuffer_Reset_m5184P27DecoderFallbackBuffer_t1629 , _UpdateCommand_ResetGUI_m17_MethodInfo , __Z27EdgeCollider2D_CUSTOM_Reset29ReadOnlyScriptingObjectOfTypeI14EdgeCollider2DE , __Z36TerrainData_CUSTOM_ResetDirtyDetails29ReadOnlyScriptingObjectOfTypeI11TerrainDataE , __Z28UpdateCommand_ResetGUIm2_m20P9Object_t8P15PlayerStats_t13 , __Z28DeleteCommand_ResetGUIm3_m27P9Object_t8P15PlayerStats_t13 , _GameCenterPlatform_t2957____s_ResetAchievements_FieldInfo , _UpdateCommand_t14__CustomAttributeCache_UpdateCommand_ResetGUIm2_m20 , _InsertCommand_t12__CustomAttributeCache_InsertCommand_ResetGUIm1_m13 , _Enumerator_Reset_m3973_MethodInfo , _DeleteCommand_ResetGUI_m24_MethodInfo , _InsertCommand_ResetGUI_m8_MethodInfo , __Z34NumberFormatter_ResetCharBuf_m5923P21NumberFormatter_t1725i , __Z26DeleteCommand_ResetGUI_m24P17DeleteCommand_t15 , __Z77InsertCommand_t12_CustomAttributesCacheGenerator_InsertCommand_ResetGUIm1_m13P21CustomAttributesCache , __Z28InsertCommand_ResetGUIm1_m13P9Object_t8P15PlayerStats_t13 , _Stopwatch_Reset_m883_MethodInfo , __Z22Enumerator_Reset_m3973P16Enumerator_t1389 , __Z45Register_UnityEngine_iPhone_ResetNoBackupFlagv , __Z77UpdateCommand_t14_CustomAttributesCacheGenerator_UpdateCommand_ResetGUIm2_m20P21CustomAttributesCache , _InsertCommand_ResetGUIm1_m13_MethodInfo , __Z34Animator_CUSTOM_ResetTriggerString29ReadOnlyScriptingObjectOfTypeI8AnimatorE11ICallString , _DeleteCommand_t15__CustomAttributeCache_DeleteCommand_ResetGUIm3_m27 , _GUILayoutGroup_ResetCursor_m8888_MethodInfo )
    17.   "_BindInt64", referenced from:
    18.       SQLite3_BindInt64_m2113(Object_t8*, IntPtr_t37, int, long long) in Bulk_SimpleSQL_Runtime_0.o
    19.      (maybe you meant: _SQLite3_BindInt64_m2113_MethodInfo, __Z23SQLite3_BindInt64_m2113P9Object_t810IntPtr_t37ix )
    20.   "_BindNull", referenced from:
    21.       SQLite3_BindNull_m2111(Object_t8*, IntPtr_t37, int) in Bulk_SimpleSQL_Runtime_0.o
    22.      (maybe you meant: __Z22SQLite3_BindNull_m2111P9Object_t810IntPtr_t37i, _SQLite3_BindNull_m2111_MethodInfo )
    23.   "_ColumnBytes", referenced from:
    24.       SQLite3_ColumnBytes_m2125(Object_t8*, IntPtr_t37, int) in Bulk_SimpleSQL_Runtime_0.o
    25.      (maybe you meant: _SQLite3_ColumnBytes_m2125_MethodInfo, __Z25SQLite3_ColumnBytes_m2125P9Object_t810IntPtr_t37i )
    26.   "_BindText", referenced from:
    27.       SQLite3_BindText_m2115(Object_t8*, IntPtr_t37, int, String_t10*, int, IntPtr_t37) in Bulk_SimpleSQL_Runtime_0.o
    28.      (maybe you meant: __Z22SQLite3_BindText_m2115P9Object_t810IntPtr_t37iP10String_t10iS1_, _SQLite3_BindText_m2115_MethodInfo )
    29.   "_Finalize", referenced from:
    30.       SQLite3_Finalize_m2106(Object_t8*, IntPtr_t37) in Bulk_SimpleSQL_Runtime_0.o
    31.      (maybe you meant: __Z28GcLeaderboard_Finalize_m8746P19GcLeaderboard_t3097, _Gradient_Finalize_m8812_MethodInfo , __Z99CriticalFinalizerObject_t1536_CustomAttributesCacheGenerator_CriticalFinalizerObject_Finalize_m4904P21CustomAttributesCache , __Z20Event_Finalize_m9080P11Event_t3142 , _GUIStyleState_Finalize_m8991_MethodInfo , __Z28RemotingProxy_Finalize_m5015P19RemotingProxy_t1580 , __Z22Context_Finalize_m4950P13Context_t1559 , __Z28GUIStyleState_Finalize_m8991P19GUIStyleState_t3137 , _ActivationContext_Finalize_m5385_MethodInfo , __Z25RectOffset_Finalize_m9001P16RectOffset_t3125 , _Thread_t1166__CustomAttributeCache_Thread_Finalize_m5369 , __Z65Thread_t1166_CustomAttributesCacheGenerator_Thread_Finalize_m5369P21CustomAttributesCache , _Thread_Finalize_m5369_MethodInfo , _WaitHandle_Finalize_m5383_MethodInfo , _RNGCryptoServiceProvider_Finalize_m5107_MethodInfo , __Z32ActivationContext_Finalize_m5385P23ActivationContext_t1666 , __Z25WaitHandle_Finalize_m5383P16WaitHandle_t1654 , __Z39RNGCryptoServiceProvider_Finalize_m5107P30RNGCryptoServiceProvider_t1613 , _Context_Finalize_m4950_MethodInfo , _CriticalFinalizerObject_t1536__CustomAttributeCache_CriticalFinalizerObject_Finalize_m4904 , __Z34TouchScreenKeyboard_Finalize_m9072P25TouchScreenKeyboard_t2986 , __Z25SafeHandle_Finalize_m4922P16SafeHandle_t1330 , __Z38CriticalFinalizerObject_Finalize_m4904P29CriticalFinalizerObject_t1536 , _StreamWriter_Finalize_m4377_MethodInfo , _FileStream_Finalize_m4257_MethodInfo , __Z25FileStream_Finalize_m4257P16FileStream_t1424 , _SafeHandle_Finalize_m4922_MethodInfo , __Z21Thread_Finalize_m5369P12Thread_t1166 , __Z60Object_t8_CustomAttributesCacheGenerator_Object_Finalize_m98P21CustomAttributesCache , _Event_Finalize_m9080_MethodInfo , _Object_t8__CustomAttributeCache_Object_Finalize_m98 , _TouchScreenKeyboard_Finalize_m9072_MethodInfo , _GUIStyle_Finalize_m9019_MethodInfo , _RectOffset_Finalize_m9001_MethodInfo , _GcLeaderboard_Finalize_m8746_MethodInfo , _Coroutine_Finalize_m8736_MethodInfo , __Z23GUIStyle_Finalize_m9019P14GUIStyle_t2988 , __Z24Coroutine_Finalize_m8736P15Coroutine_t3090 , _AsyncOperation_Finalize_m9250_MethodInfo , _AnimationCurve_Finalize_m8571_MethodInfo , __Z29AnimationEvent_Finalize_m8549P20AnimationEvent_t3049 , _SQLite3_Finalize_m2106_MethodInfo , _PreparedSqlLiteInsertCommand_Finalize_m2097_MethodInfo , __Z19Object_Finalize_m98P9Object_t8 , __Z43PreparedSqlLiteInsertCommand_Finalize_m2097P33PreparedSqlLiteInsertCommand_t874 , __Z28SQLiteCommand_Finalize_m2079P18SQLiteCommand_t86710IntPtr_t37 , _Object_Finalize_m98_MethodInfo , _SQLiteCommand_Finalize_m2079_MethodInfo , _RemotingProxy_Finalize_m5015_MethodInfo , __Z29AsyncOperation_Finalize_m9250P20AsyncOperation_t3078 , __Z29AnimationCurve_Finalize_m8571P20AnimationCurve_t3054 , __Z23Gradient_Finalize_m8812P14Gradient_t3114 , __Z22SQLite3_Finalize_m2106P9Object_t810IntPtr_t37 , _AnimationEvent_Finalize_m8549_MethodInfo , __Z27StreamWriter_Finalize_m4377P18StreamWriter_t1445 , _CompareInfo_Finalize_m4071_MethodInfo , _CriticalFinalizerObject_Finalize_m4904_MethodInfo , _FT_List_Finalize , __Z28TextGenerator_Finalize_m8476P19TextGenerator_t2999 , __Z26CompareInfo_Finalize_m4071P17CompareInfo_t1385 , _TextGenerator_Finalize_m8476_MethodInfo )
    32.   "_Errmsg", referenced from:
    33.       SQLite3_Errmsg_m2108(Object_t8*, IntPtr_t37) in Bulk_SimpleSQL_Runtime_0.o
    34.      (maybe you meant: __Z20SQLite3_Errmsg_m2108P9Object_t810IntPtr_t37, _SQLite3_Errmsg_m2108_MethodInfo )
    35.   "_ColumnInt", referenced from:
    36.       SQLite3_ColumnInt_m2120(Object_t8*, IntPtr_t37, int) in Bulk_SimpleSQL_Runtime_0.o
    37.      (maybe you meant: __Z23SQLite3_ColumnInt_m2120P9Object_t810IntPtr_t37i, _SQLite3_ColumnInt_m2120_MethodInfo , _SQLite3_ColumnInt64_m2121_MethodInfo , __Z25SQLite3_ColumnInt64_m2121P9Object_t810IntPtr_t37i )
    38.   "_BindParameterIndex", referenced from:
    39.       SQLite3_BindParameterIndex_m2110(Object_t8*, IntPtr_t37, String_t10*) in Bulk_SimpleSQL_Runtime_0.o
    40.      (maybe you meant: _SQLite3_BindParameterIndex_m2110_MethodInfo, __Z32SQLite3_BindParameterIndex_m2110P9Object_t810IntPtr_t37P10String_t10 )
    41.   "_ColumnType", referenced from:
    42.       SQLite3_ColumnType_m2119(Object_t8*, IntPtr_t37, int) in Bulk_SimpleSQL_Runtime_0.o
    43.      (maybe you meant: __Z24SQLite3_ColumnType_m2119P9Object_t810IntPtr_t37i, _SQLite3_ColumnType_m2119_MethodInfo )
    44.   "_ColumnInt64", referenced from:
    45.       SQLite3_ColumnInt64_m2121(Object_t8*, IntPtr_t37, int) in Bulk_SimpleSQL_Runtime_0.o
    46.      (maybe you meant: _SQLite3_ColumnInt64_m2121_MethodInfo, __Z25SQLite3_ColumnInt64_m2121P9Object_t810IntPtr_t37i )
    47.   "_BindDouble", referenced from:
    48.       SQLite3_BindDouble_m2114(Object_t8*, IntPtr_t37, int, double) in Bulk_SimpleSQL_Runtime_0.o
    49.      (maybe you meant: _SQLite3_BindDouble_m2114_MethodInfo, __Z24SQLite3_BindDouble_m2114P9Object_t810IntPtr_t37id )
    50.   "_Changes", referenced from:
    51.       SQLite3_Changes_m2101(Object_t8*, IntPtr_t37) in Bulk_SimpleSQL_Runtime_0.o
    52.      (maybe you meant: __Z21SQLite3_Changes_m2101P9Object_t810IntPtr_t37, _SQLite3_Changes_m2101_MethodInfo )
    53.   "_Step", referenced from:
    54.       SQLite3_Step_m2104(Object_t8*, IntPtr_t37) in Bulk_SimpleSQL_Runtime_0.o
    55.      (maybe you meant: _SQLite3_Step_m2104_MethodInfo, __Z18SQLite3_Step_m2104P9Object_t810IntPtr_t37 )
    56.   "_Prepare2", referenced from:
    57.       SQLite3_Prepare2_m2102(Object_t8*, IntPtr_t37, String_t10*, int, IntPtr_t37*, IntPtr_t37) in Bulk_SimpleSQL_Runtime_0.o
    58.      (maybe you meant: __Z22SQLite3_Prepare2_m2102P9Object_t810IntPtr_t37P10String_t10iPS1_S1_, __Z22SQLite3_Prepare2_m2103P9Object_t810IntPtr_t37P10String_t10 , _SQLite3_Prepare2_m2102_MethodInfo , _SQLite3_Prepare2_m2103_MethodInfo )
    59.   "_BindInt", referenced from:
    60.       SQLite3_BindInt_m2112(Object_t8*, IntPtr_t37, int, int) in Bulk_SimpleSQL_Runtime_0.o
    61.      (maybe you meant: _SQLite3_BindInt_m2112_MethodInfo, _SQLite3_BindInt64_m2113_MethodInfo , __Z23SQLite3_BindInt64_m2113P9Object_t810IntPtr_t37ix , __Z21SQLite3_BindInt_m2112P9Object_t810IntPtr_t37ii )
    62.   "_ColumnCount", referenced from:
    63.       SQLite3_ColumnCount_m2117(Object_t8*, IntPtr_t37) in Bulk_SimpleSQL_Runtime_0.o
    64.      (maybe you meant: __Z25SQLite3_ColumnCount_m2117P9Object_t810IntPtr_t37, _SQLite3_ColumnCount_m2117_MethodInfo )
    65.   "_Close", referenced from:
    66.       SQLite3_Close_m2099(Object_t8*, IntPtr_t37) in Bulk_SimpleSQL_Runtime_0.o
    67.      (maybe you meant: __Z50Collider_CUSTOM_INTERNAL_CALL_ClosestPointOnBounds21ScriptingObjectOfTypeI8ColliderERK8Vector3f, _FMOD_System_Close , __Z30Mathf_CUSTOM_ClosestPowerOfTwoi , __Z28SQLiteConnection_Close_m2003P21SQLiteConnection_t865 , __Z64Register_UnityEngine_Collider_INTERNAL_CALL_ClosestPointOnBoundsv , __Z65Register_UnityEngine_Rigidbody_INTERNAL_CALL_ClosestPointOnBoundsv , _NativeEventCalls_CloseEventinternal_m5361_MethodInfo , __Z51Rigidbody_CUSTOM_INTERNAL_CALL_ClosestPointOnBounds29ReadOnlyScriptingObjectOfTypeI9RigidbodyERK8Vector3f , _FT_Stream_Close , __Z44Register_UnityEngine_Mathf_ClosestPowerOfTwov , __Z18FMOD_OS_File_ClosePv , _OpCode_t514____Close_FieldInfo , __Z19SQLite3_Close_m2099P9Object_t810IntPtr_t37 , __Z22SafeHandle_Close_m4917P16SafeHandle_t1330 , _UnmanagedMemoryStream_t1453____Closed_FieldInfo , _MonoIO_Close_m4301_MethodInfo , __Z28SimpleSQLManager_Close_m2139P19SimpleSQLManager_t1 , _SQLiteConnection_Close_m2003_MethodInfo , _SafeHandle_t1330__CustomAttributeCache_SafeHandle_Close_m4917 , _SimpleSQLManager_Close_m2139_MethodInfo , _Stream_Close_m2267_MethodInfo , __Z17FMOD_OS_Net_ClosePKv , _SafeHandle_Close_m4917_MethodInfo , __Z70SafeHandle_t1330_CustomAttributesCacheGenerator_SafeHandle_Close_m4917P21CustomAttributesCache , _SQLite3_Close_m2099_MethodInfo , __Z18Stream_Close_m2267P11Stream_t890 , __Z18MonoIO_Close_m4301P9Object_t810IntPtr_t37Pi , __Z41NativeEventCalls_CloseEventinternal_m5361P9Object_t810IntPtr_t37 , _UnicodeCategory_t1418____ClosePunctuation_FieldInfo )
    68.   "_ColumnName16", referenced from:
    69.       SQLite3_ColumnName16_m2118(Object_t8*, IntPtr_t37, int) in Bulk_SimpleSQL_Runtime_0.o
    70.      (maybe you meant: _SQLite3_ColumnName16_m2118_MethodInfo, __Z26SQLite3_ColumnName16_m2118P9Object_t810IntPtr_t37i )
    71.   "_BusyTimeout", referenced from:
    72.       SQLite3_BusyTimeout_m2100(Object_t8*, IntPtr_t37, int) in Bulk_SimpleSQL_Runtime_0.o
    73.      (maybe you meant: __Z25SQLite3_BusyTimeout_m2100P9Object_t810IntPtr_t37i, _SQLite3_BusyTimeout_m2100_MethodInfo )
    74.   "_LastInsertRowid", referenced from:
    75.       SQLite3_LastInsertRowid_m2107(Object_t8*, IntPtr_t37) in Bulk_SimpleSQL_Runtime_0.o
    76.      (maybe you meant: __Z29SQLite3_LastInsertRowid_m2107P9Object_t810IntPtr_t37, _SQLite3_LastInsertRowid_m2107_MethodInfo )
    77.   "_Open", referenced from:
    78.       SQLite3_Open_m2098(Object_t8*, String_t10*, IntPtr_t37*) in Bulk_SimpleSQL_Runtime_0.o
    79.      (maybe you meant: _FT_Stream_OpenMemory, __ZNSt19basic_ostringstreamIcSt11char_traitsIcEN3Alg13UserAllocatorIcEEEC1ESt13_Ios_Openmode , _FT_Stream_Open , _FileMode_t1426____Open_FieldInfo , _SQLite3_Open_m2098_MethodInfo , __Z17FMOD_OS_File_OpenPKcPciPjPPv , __Z26Application_CUSTOM_OpenURL11ICallString , _Console_Open_m5435_MethodInfo , __Z42Register_UnityEngine_Debug_OpenConsoleFilev , __Z28Debug_CUSTOM_OpenConsoleFilev , __Z87TouchScreenKeyboard_t2986_CustomAttributesCacheGenerator_TouchScreenKeyboard_Open_m9074P21CustomAttributesCache , __Z18Console_Open_m5435P9Object_t810IntPtr_t37ii , _Console_OpenStandardOutput_m5438_MethodInfo , _Console_OpenStandardError_m5436_MethodInfo , __Z31Console_OpenStandardError_m5436P9Object_t8i , __Z32Console_OpenStandardOutput_m5438P9Object_t8i , __Z31Console_OpenStandardInput_m5437P9Object_t8i , _UnicodeCategory_t1418____OpenPunctuation_FieldInfo , __ZNSt15basic_stringbufIcSt11char_traitsIcEN3Alg13UserAllocatorIcEEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode , _MonoIO_Open_m4300_MethodInfo , _TouchScreenKeyboard_Open_m9075_MethodInfo , __ZNSt15basic_stringbufIcSt11char_traitsIcEN3Alg13UserAllocatorIcEEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode , __Z40Register_UnityEngine_Application_OpenURLv , __Z32DeveloperConsole_OpenConsoleFilev , _FileMode_t1426____OpenOrCreate_FieldInfo , _TouchScreenKeyboard_Open_m9074_MethodInfo , _TouchScreenKeyboard_t2986__CustomAttributeCache_TouchScreenKeyboard_Open_m9074 , __Z30TouchScreenKeyboard_Open_m9074P9Object_t8P10String_t10ibbb , __Z30TouchScreenKeyboard_Open_m9075P9Object_t8P10String_t10ibbbbS2_ , _Console_OpenStandardInput_m5437_MethodInfo , _OpCode_t514____Open_FieldInfo , __Z18SQLite3_Open_m2098P9Object_t8P10String_t10P10IntPtr_t37 , _FT_Open_Face , __Z17MonoIO_Open_m4300P9Object_t8P10String_t10iiiiPi )
    80. ld: symbol(s) not found for architecture arm64
    81. clang: error: linker command failed with exit code 1 (use -v to see invocation)
    82.  
    If I try it with entrypoints, something like:

    Code (CSharp):
    1.         [DllImport("__Internal", EntryPoint = "sqlite3_open", CallingConvention = CallingConvention.Cdecl)]
    2.         public static extern Result Open(string filename, out IntPtr db);
    3.  
    I get these errors during linking:

    Code (CSharp):
    1. Undefined symbols for architecture arm64:
    2.   "_sqlite3_column_blob", referenced from:
    3.       SQLite3_ColumnBlob_m2124(Object_t8*, IntPtr_t37, int) in Bulk_SimpleSQL_Runtime_0.o
    4.   "_sqlite3_errmsg16", referenced from:
    5.       SQLite3_Errmsg_m2108(Object_t8*, IntPtr_t37) in Bulk_SimpleSQL_Runtime_0.o
    6.   "_sqlite3_prepare_v2", referenced from:
    7.       SQLite3_Prepare2_m2102(Object_t8*, IntPtr_t37, String_t10*, int, IntPtr_t37*, IntPtr_t37) in Bulk_SimpleSQL_Runtime_0.o
    8.   "_sqlite3_bind_text", referenced from:
    9.       SQLite3_BindText_m2115(Object_t8*, IntPtr_t37, int, String_t10*, int, IntPtr_t37) in Bulk_SimpleSQL_Runtime_0.o
    10.   "_sqlite3_bind_null", referenced from:
    11.       SQLite3_BindNull_m2111(Object_t8*, IntPtr_t37, int) in Bulk_SimpleSQL_Runtime_0.o
    12.   "_sqlite3_finalize", referenced from:
    13.       SQLite3_Finalize_m2106(Object_t8*, IntPtr_t37) in Bulk_SimpleSQL_Runtime_0.o
    14.   "_sqlite3_close", referenced from:
    15.       SQLite3_Close_m2099(Object_t8*, IntPtr_t37) in Bulk_SimpleSQL_Runtime_0.o
    16.   "_sqlite3_column_count", referenced from:
    17.       SQLite3_ColumnCount_m2117(Object_t8*, IntPtr_t37) in Bulk_SimpleSQL_Runtime_0.o
    18.   "_sqlite3_column_type", referenced from:
    19.       SQLite3_ColumnType_m2119(Object_t8*, IntPtr_t37, int) in Bulk_SimpleSQL_Runtime_0.o
    20.   "_sqlite3_bind_int64", referenced from:
    21.       SQLite3_BindInt64_m2113(Object_t8*, IntPtr_t37, int, long long) in Bulk_SimpleSQL_Runtime_0.o
    22.   "_sqlite3_open", referenced from:
    23.       SQLite3_Open_m2098(Object_t8*, String_t10*, IntPtr_t37*) in Bulk_SimpleSQL_Runtime_0.o
    24.   "_sqlite3_last_insert_rowid", referenced from:
    25.       SQLite3_LastInsertRowid_m2107(Object_t8*, IntPtr_t37) in Bulk_SimpleSQL_Runtime_0.o
    26.   "_sqlite3_column_int64", referenced from:
    27.       SQLite3_ColumnInt64_m2121(Object_t8*, IntPtr_t37, int) in Bulk_SimpleSQL_Runtime_0.o
    28.   "_sqlite3_reset", referenced from:
    29.       SQLite3_Reset_m2105(Object_t8*, IntPtr_t37) in Bulk_SimpleSQL_Runtime_0.o
    30.   "_sqlite3_changes", referenced from:
    31.       SQLite3_Changes_m2101(Object_t8*, IntPtr_t37) in Bulk_SimpleSQL_Runtime_0.o
    32.   "_sqlite3_bind_blob", referenced from:
    33.       SQLite3_BindBlob_m2116(Object_t8*, IntPtr_t37, int, Byte_t623*, int, IntPtr_t37) in Bulk_SimpleSQL_Runtime_0.o
    34.   "_sqlite3_column_bytes", referenced from:
    35.       SQLite3_ColumnBytes_m2125(Object_t8*, IntPtr_t37, int) in Bulk_SimpleSQL_Runtime_0.o
    36.   "_sqlite3_bind_parameter_index", referenced from:
    37.       SQLite3_BindParameterIndex_m2110(Object_t8*, IntPtr_t37, String_t10*) in Bulk_SimpleSQL_Runtime_0.o
    38.   "_sqlite3_column_text16", referenced from:
    39.       SQLite3_ColumnText16_m2123(Object_t8*, IntPtr_t37, int) in Bulk_SimpleSQL_Runtime_0.o
    40.   "_sqlite3_step", referenced from:
    41.       SQLite3_Step_m2104(Object_t8*, IntPtr_t37) in Bulk_SimpleSQL_Runtime_0.o
    42.   "_sqlite3_bind_int", referenced from:
    43.       SQLite3_BindInt_m2112(Object_t8*, IntPtr_t37, int, int) in Bulk_SimpleSQL_Runtime_0.o
    44.   "_sqlite3_column_int", referenced from:
    45.       SQLite3_ColumnInt_m2120(Object_t8*, IntPtr_t37, int) in Bulk_SimpleSQL_Runtime_0.o
    46.   "_sqlite3_bind_double", referenced from:
    47.       SQLite3_BindDouble_m2114(Object_t8*, IntPtr_t37, int, double) in Bulk_SimpleSQL_Runtime_0.o
    48.   "_sqlite3_column_double", referenced from:
    49.       SQLite3_ColumnDouble_m2122(Object_t8*, IntPtr_t37, int) in Bulk_SimpleSQL_Runtime_0.o
    50.   "_sqlite3_busy_timeout", referenced from:
    51.       SQLite3_BusyTimeout_m2100(Object_t8*, IntPtr_t37, int) in Bulk_SimpleSQL_Runtime_0.o
    52.   "_sqlite3_column_name16", referenced from:
    53.       SQLite3_ColumnName16_m2118(Object_t8*, IntPtr_t37, int) in Bulk_SimpleSQL_Runtime_0.o
    54. ld: symbol(s) not found for architecture arm64
    55. clang: error: linker command failed with exit code 1 (use -v to see invocation)
    56.  
    Is pinvoking with named libraries going to be fixed in a future release, or is there something else I can try to access the sqlite external library?
     
  34. glacius3000

    glacius3000

    Joined:
    Oct 5, 2012
    Posts:
    69
    Just upgraded Unity from 4.6.1p1 to 4.6.1p3 just to make sure it hasn't been fixed in a newer version. Unfortunately it's still broken...
    I guess the best workaround for now is to make the int array 4x as big.

    I'll submit a bug report. Thanks the hardwork guys.
     
  35. joncham

    joncham

    Unity Technologies

    Joined:
    Dec 1, 2011
    Posts:
    276
    The latest version is 4.6.2p1. Please upgrade to that version. I replied earlier that the issue is already fixed there. Thanks!
     
  36. lcambiaghi

    lcambiaghi

    Joined:
    Sep 27, 2012
    Posts:
    41
    I still have this error (unity 6.4.2 patch 1)


    * thread #1: tid = 0x874c, 0x316e11a0 libsystem_platform.dylib`OSAtomicCompareAndSwap64Barrier + 8, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=EXC_ARM_DA_ALIGN, address=0x1902aa44)

    frame #0: 0x316e11a0 libsystem_platform.dylib`OSAtomicCompareAndSwap64Barrier + 8

    * frame #1: 0x01fcaec0 cinime`ExitMonitor(Il2CppObject*) [inlined] il2cpp::eek:s::Atomic::Exchange64(exchange=<unavailable>) + 104 at AtomicImpl.h:69

    frame #2: 0x01fcaea0 cinime`ExitMonitor(Il2CppObject*) [inlined] il2cpp::eek:s::Atomic::Exchange64(newValue=<unavailable>) at Atomic.h:84

    frame #3: 0x01fcaea0 cinime`ExitMonitor(Il2CppObject*) [inlined] MonitorData::Unacquire(this=<unavailable>) at Monitor.cpp:130

    frame #4: 0x01fcaea0 cinime`ExitMonitor(obj=<unavailable>) + 72 at Monitor.cpp:419

    frame #5: 0x01026118 cinime`Monitor_Exit_m12541(__this=0x00000000, ___obj=0x0d2ef890) + 116 at Bulk_mscorlib_6.cpp:51708

    frame #6: 0x0041019c
     
  37. joncham

    joncham

    Unity Technologies

    Joined:
    Dec 1, 2011
    Posts:
    276
    It looks like the fix for this just went in. Expect it to land in the next patch release (4.6.2p2 I believe).
     
  38. bberryEA

    bberryEA

    Joined:
    Jan 13, 2015
    Posts:
    3
    @joncham A little confused. You originally noted this was fixed on 27 Jan. Was that a statement of claim-fix in a branch somewhere, only integrated downstream now? A measure of integration cadence is important here, if only because some of these IL2CPP issues may be serial blockers---that is to say, each fixed in turn at 1-2 week increments (bug N+1 not observable until bug N is resolved) presents a bit of scheduling nondeterminism. Any clarity Unity can provide on expected true resolution (public-facing) issue by issue in the future would be valuable.
     
  39. joncham

    joncham

    Unity Technologies

    Joined:
    Dec 1, 2011
    Posts:
    276
    @bberryEA apologies. This fix basically hit a 'worse case' path for integration into a release. It was indeed made in a branch when I mentioned it and looked like it would be merged in time for an earlier release. However, additional changes in the branch weren't stable enough to integrate until now.
     
  40. tcossairt

    tcossairt

    Joined:
    Dec 5, 2013
    Posts:
    129
    Another bug I discovered after our network code stopped working under IL2CPP (based on Lidgren code). Unity 4.6.2p1 with IL2CPP does not seem to support the [StructLayout(LayoutKind.Explicit)] & [FieldOffset(0)] attributes. The Lidgren code used these to represent a Union type. Looking for a work around currently but heres some sample code. I'll file a bug report too.

    Code (csharp):
    1.  
    2. [StructLayout(LayoutKind.Explicit)]
    3. public struct SingleUIntUnion
    4. {
    5. ///<summary>
    6. ///Value as a 32 bit float
    7. ///</summary>
    8. [FieldOffset(0)]
    9. public float SingleValue;
    10.  
    11. ///<summary>
    12. ///Value as an unsigned 32 bit integer
    13. ///</summary>
    14. [FieldOffset(0)]
    15. //[CLSCompliant(false)]
    16. public uint UIntValue;
    17. }
    18.  
    19. publicvoidWrite(floatsource)
    20. {
    21. //UseuniontoavoidBitConverter.GetBytes() whichallocatesmemoryontheheap
    22. SingleUIntUnion su;
    23. su.UIntValue = 0; //mustinitializeeverymemberoftheuniontoavoidwarning
    24. su.SingleValue = source;
    25. Write(su.UIntValue);
    26. }
    27.  
     
  41. glacius3000

    glacius3000

    Joined:
    Oct 5, 2012
    Posts:
    69
    Ah sorry I went to the first page of this thread and assumed that to be the latest version without double checking the full version number. All my plugins are working now thanks!
     
  42. brianchasalow

    brianchasalow

    Joined:
    Jun 3, 2010
    Posts:
    204
    @Lucas Meijer @joncham latest version of il2cpp patch release, 4.6.2p1 compiles/links now, but BestHTTP doesn't function due to the network Sockets implementation missing. Can we expect that in the next patch?
     
  43. XilenceX

    XilenceX

    Joined:
    Jun 16, 2013
    Posts:
    122
    @Tautvydas Zilys I reported the bug (Case 670318) and attached my project files so you can reproduce the crash in a few steps. I hope you are able to solve this crash bug, otherwise I probably have to give up on releasing this game on iOS.
     
  44. imkc

    imkc

    Joined:
    Nov 16, 2013
    Posts:
    6
    Hi, there is another BinaryFormatter issue. I find that the serialization result in editor is different and incompatible to il2cpp build, and it had not happened in Mono build.
    I just serialized a object in editor, save the serialization result to the Resources directory, and read it out later in the il2cpp build. I have reported the issue(670327) with sources.
     
  45. AGaming

    AGaming

    Joined:
    Dec 26, 2013
    Posts:
    100
  46. Simie

    Simie

    Joined:
    Oct 26, 2012
    Posts:
    454
    I just filed a bug report for an error I am getting when iterating over all types in an assembly searching for attributes. Case number is 670410. I suspect it's caused by reflecting over stripped types, but I'm not sure.
     
  47. rairala

    rairala

    Joined:
    Aug 21, 2014
    Posts:
    4
    Filled 670424 since there was no answer as to whether it's working as expected or not.
     
  48. joncham

    joncham

    Unity Technologies

    Joined:
    Dec 1, 2011
    Posts:
    276
    Indeed this functionality was not implemented. I implemented this today and it should be available in a future release.
     
  49. Hacky

    Hacky

    Joined:
    Mar 22, 2013
    Posts:
    28
    Hi,

    I use 4.6.2p1 and have still problems with BinaryFormatter deserialisation.
    I want to deserialize a Dictionary with an Integer as Key and an own List-Format (dfList from DFGUI) as Value. The list consists of an array of an own struct with also own structs (see code below).

    code for deserialization:
    Code (CSharp):
    1. TextAsset data = Resources.Load<TextAsset>("dicePathes");
    2. byte[] bytes = data.bytes;
    3. BinaryFormatter formatter = new BinaryFormatter();
    4. MemoryStream stream = new MemoryStream(bytes);formatter.Deserialize(stream) as Dictionary<int, dfList<DicePath[]>>;
    data structure
    Code (CSharp):
    1. [System.Serializable]
    2. public struct DicePath
    3. {
    4.     public uint endValue;
    5.     public DiceRecord startRecord;
    6.     public DiceRecord[] deltaRecords;
    7. }
    8.  
    9. [System.Serializable]
    10. public struct DiceRecord
    11. {
    12.     public Vector3Serializable position;
    13.     public Vector3Serializable rotation;
    14.  
    15.     public float deltaTime;
    16. }
    17.  
    18. [System.Serializable]
    19. public struct Vector3Serializable
    20. {
    21.     public float x;
    22.     public float y;
    23.     public float z;
    24. }
    error:
    line 4: EXC_BAD_ACCESS (code=1, address=0x50)
    Code (csharp):
    1. heckmeck`il2cpp::vm::Class::GetType(TypeInfo*, il2cpp::vm::TypeNameParseInfo const&) at Class.cpp:849:
    2. 0x139abd8:  push   {r4, r5, r6, r7, lr}
    3. 0x139abdc:  mov    r4, r1
    4. 0x139abe0:  ldr    r1, [r0, #80]
    5. 0x139abe4:  add    r7, sp, #0xc
    6. 0x139abe8:  cmp    r1, #0x0
    7. 0x139abec:  beq    0x139ac00                 ; il2cpp::vm::Class::GetType(TypeInfo*, il2cpp::vm::TypeNameParseInfo const&) + 40 [inlined] std::vector<int, std::allocator<int> >::begin() const at Class.cpp:857
    8. il2cpp::vm::Class::GetType(TypeInfo*, il2cpp::vm::TypeNameParseInfo const&) + 40 at Class.cpp:857
    9. 0x139abf0:  mov    r1, r4
    10. 0x139abf4:  mov    r2, #0x0
    11. 0x139abf8:  mov    r3, #0x0
    12. 0x139abfc:  bl     0x139ac7c                 ; il2cpp::vm::ResolveGenericInstanceType(TypeInfo*, il2cpp::vm::TypeNameParseInfo const&, bool, bool) at Class.cpp:1166
    13. 0x139ac00:  ldr    r5, [r4, #64]
    14. 0x139ac04:  ldr    r1, [r4, #68]
    15. 0x139ac08:  cmp    r5, r1
    16. 0x139ac0c:  beq    0x139ac5c                 ; il2cpp::vm::Class::GetType(TypeInfo*, il2cpp::vm::TypeNameParseInfo const&) + 132 at Class.cpp:864
    17. 0x139ac10:  mov    r6, #0x0
    18. 0x139ac14:  b      0x139ac2c                 ; il2cpp::vm::Class::GetType(TypeInfo*, il2cpp::vm::TypeNameParseInfo const&) + 84 at Class.cpp:866
    19. 0x139ac18:  cmp    r1, #0x0
    20. 0x139ac1c:  beq    0x139ac70                 ; il2cpp::vm::Class::GetType(TypeInfo*, il2cpp::vm::TypeNameParseInfo const&) + 152 at Class.cpp:869
    21. 0x139ac20:  and    r2, r6, #0x1
    22. 0x139ac24:  bl     0x13a43b8                 ; il2cpp::vm::MetadataCache::GetBoundedArrayClass(TypeInfo*, unsigned int, bool) at MetadataCache.cpp:328
    23. 0x139ac28:  b      0x139ac4c                 ; il2cpp::vm::Class::GetType(TypeInfo*, il2cpp::vm::TypeNameParseInfo const&) + 116 [inlined] __gnu_cxx::__normal_iterator<int const*, std::vector<int, std::allocator<int> > >::operator++() at Class.cpp:883
    24. il2cpp::vm::Class::GetType(TypeInfo*, il2cpp::vm::TypeNameParseInfo const&) + 116 at Class.cpp:883
    25. 0x139ac2c:  ldr    r1, [r5]
    26. 0x139ac30:  cmn    r1, #0x2
    27. 0x139ac34:  beq    0x139ac48                 ; il2cpp::vm::Class::GetType(TypeInfo*, il2cpp::vm::TypeNameParseInfo const&) + 112 at Class.cpp:874
    28. 0x139ac38:  cmn    r1, #0x1
    29. 0x139ac3c:  bne    0x139ac18                 ; il2cpp::vm::Class::GetType(TypeInfo*, il2cpp::vm::TypeNameParseInfo const&) + 64 at Class.cpp:864
    30. 0x139ac40:  bl     0x139b178                 ; il2cpp::vm::Class::GetPtrClass(TypeInfo*) at Class.cpp:949
    31. 0x139ac44:  b      0x139ac4c                 ; il2cpp::vm::Class::GetType(TypeInfo*, il2cpp::vm::TypeNameParseInfo const&) + 116 [inlined] __gnu_cxx::__normal_iterator<int const*, std::vector<int, std::allocator<int> > >::operator++() at Class.cpp:883
    32. il2cpp::vm::Class::GetType(TypeInfo*, il2cpp::vm::TypeNameParseInfo const&) + 116 at Class.cpp:883
    33. 0x139ac48:  mov    r6, #0x1
    34. 0x139ac4c:  add    r5, r5, #0x4
    35. 0x139ac50:  ldr    r1, [r4, #68]
    36. 0x139ac54:  cmp    r5, r1
    37. 0x139ac58:  bne    0x139ac2c                 ; il2cpp::vm::Class::GetType(TypeInfo*, il2cpp::vm::TypeNameParseInfo const&) + 84 at Class.cpp:866
    38. 0x139ac5c:  mov    r1, #0x0
    39. 0x139ac60:  cmp    r0, #0x0
    40. 0x139ac64:  ldrne  r1, [r0, #64]
    41. 0x139ac68:  mov    r0, r1
    42. 0x139ac6c:  pop    {r4, r5, r6, r7, pc}
    43. 0x139ac70:  ldr    r1, [r0, #68]
    44. 0x139ac74:  mov    r0, r1
    45. 0x139ac78:  pop    {r4, r5, r6, r7, pc}
    Can you help me. My link.xml is as following:
    Code (csharp):
    1. <linker>
    2.   <assembly fullname="mscorlib">
    3.     <type fullname="System.Array" preserve="all"/>
    4.     <type fullname="System.Runtime.Serialization.Formatters.Binary.BinaryFormatter" preserve="all"/>
    5.     <namespace fullname="System.Collections.Generic" preserve="all"/>
    6.   </assembly>
    7.   <assembly fullname="dfScriptLite">
    8.     <type fullname="*" preserve="all" />
    9.   </assembly>
    10. </linker>
    Thanks for your close support to the community.

    Best regards,
    David
     
  50. JJC1138

    JJC1138

    Joined:
    Feb 23, 2012
    Posts:
    89
    I've just filed a couple of new bugs:

    Firstly, case 670456 is System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces() throwing an exception in IL2CPP builds:
    Secondly, the editor crash I was experiencing when connecting to a server running on the phone turned out to be a crash when sending an RPC with an array parameter. It happens on all platforms, so it's not IL2CPP specific, but it is a new regression in 4.6.2p1 (works fine in 4.6.2f1), so it's conceivable that it was caused by networking changes made to support IL2CPP and I thought I'd mention it here just in case. That one is case 670479:
    Code (CSharp):
    1. using UnityEngine;
    2.  
    3. public class RPCTest : MonoBehaviour {
    4.  
    5.     void Start() {
    6.         Network.InitializeServer(1, 25678, false);
    7.     }
    8.  
    9.     void Update() {
    10.         if (Network.peerType != NetworkPeerType.Server) return;
    11.  
    12.         GetComponent<NetworkView>().RPC("TestRPC", RPCMode.All, new int[1]);
    13.     }
    14.  
    15.     [RPC]
    16.     void TestRPC(int[] foo) {
    17.         Debug.Log(foo.Length);
    18.     }
    19.  
    20. }
    Both cases have minimal test projects attached.

    By the way, I'd just like to say thank you to all the Unity engineers who are evidently working your butts off to get this stuff fixed. It's an impressive achievement to have created an entirely new CLI implementation, with an unexpected and tight deadline from Apple, and on top of that you're being very responsive in this thread as well, which is giving me a lot of confidence that IL2CPP will be solid very soon. :)
     
    juggernate likes this.