'Xcode build fails due to Undefined symbols for architecture arm64 from Unity project
We have a Unity Project that contains MRTK (Hololens 2) packages as well as ARCore and ARKit. The idea is to deploy on different platforms.
Building & deploying to Hololens 2 and Android works fine. Building to iOS works as well, but when deploying we receive a build failed error, due to undefined symbols.
Here below you find the error message and a screenshot from XCode.
Undefined symbols for architecture arm64:
“_WindowsGetStringRawBuffer”, referenced from:
IL2CPPLinkage_WindowsGetStringRawBuffer_m0B279CF40D55AD83B5E2F6F015E2DDCAFC4A4B20 in Microsoft.MixedReality.QR.DotNet.o
_IL2CPPLinkage_WindowsGetStringRawBuffer_mBF28D80EA0094E40C827670CDE5D0CA46630DBDA in Microsoft.MixedReality.QR.DotNet.o
(maybe you meant: _IL2CPPLinkage_WindowsGetStringRawBuffer_mBF28D80EA0094E40C827670CDE5D0CA46630DBDA, IL2CPPLinkage_WindowsGetStringRawBuffer_m0B279CF40D55AD83B5E2F6F015E2DDCAFC4A4B20 , _DotNETLinkage_WindowsGetStringRawBuffer_mAF0464A3963F06220DDCA0A19CF6CE0538D8EF91 , DotNETLinkage_WindowsGetStringRawBuffer_m631D03C86B7C7727817A020E55B4949279F4DA7E , _Platform_WindowsGetStringRawBuffer_m0381E05FFDA3F1F2688751AD86CAB71FA055E506 )
“_WindowsDeleteString”, referenced from:
IL2CPPLinkage_WindowsDeleteString_m1379FA79B892FEA7798F7B8CB799DE295776DC76 in Microsoft.MixedReality.QR.DotNet.o
_IL2CPPLinkage_WindowsDeleteString_mAD17ADCEF7B538ACFF41698B21AD5957F314B4DF in Microsoft.MixedReality.QR.DotNet.o
(maybe you meant: IL2CPPLinkage_WindowsDeleteString_m1379FA79B892FEA7798F7B8CB799DE295776DC76, _DotNETLinkage_WindowsDeleteString_m24B51B876E5260A308F43E7C4C2D27C9C8EC460A , DotNETLinkage_WindowsDeleteString_mD452E9573143AA1C6476BAE7B6F1B767DB45500E , _Platform_WindowsDeleteString_m174DBA308422EA53CE51EB20552AE3CD6C9300E8 , _IL2CPPLinkage_WindowsDeleteString_mAD17ADCEF7B538ACFF41698B21AD5957F314B4DF )
“_WindowsCreateString”, referenced from:
IL2CPPLinkage_WindowsCreateString_m2C2C12F9F6715AC4C7BE8E33448F2AC85EABC3EB in Microsoft.MixedReality.QR.DotNet.o
_IL2CPPLinkage_WindowsCreateString_m24E398E4BC602525C6951E48DAB9C91F7275DFD2 in Microsoft.MixedReality.QR.DotNet.o
(maybe you meant: _IL2CPPLinkage_WindowsCreateString_m24E398E4BC602525C6951E48DAB9C91F7275DFD2, IL2CPPLinkage_WindowsCreateString_m2C2C12F9F6715AC4C7BE8E33448F2AC85EABC3EB , _DotNETLinkage_WindowsCreateString_m22867C3DBBBD0814B09438A13501646502373596 , _Platform_WindowsCreateString_mF4B8E224C6D92F05D435A9565A286F9B9B9CBC45 , DotNETLinkage_WindowsCreateString_m00ADFB9E22387D9425C87B72522E04CD63283C29 )
“_CoDecrementMTAUsage”, referenced from:
IL2CPPLinkage_CoDecrementMTAUsage_mB19F4A0AAF9D393714DF428D6263BDC5ACF07122 in Microsoft.MixedReality.QR.DotNet.o
_IL2CPPLinkage_CoDecrementMTAUsage_mE1A772EF702EAEAE77E8311F89849914543BA840 in Microsoft.MixedReality.QR.DotNet.o
(maybe you meant: DotNETLinkage_CoDecrementMTAUsage_m662B2A90BEAA66016B5B260430C88CD24FBD1B69, _Platform_CoDecrementMTAUsage_mB22EA8C0A3E6AD4D558D90D3BE5FD59ABE91A665 , IL2CPPLinkage_CoDecrementMTAUsage_mB19F4A0AAF9D393714DF428D6263BDC5ACF07122 , _IL2CPPLinkage_CoDecrementMTAUsage_mE1A772EF702EAEAE77E8311F89849914543BA840 , _DotNETLinkage_CoDecrementMTAUsage_m7787C619EF225734521C2533200CC02648FD4CC4 )
“_GetProcAddress”, referenced from:
_IL2CPPLinkage_GetProcAddress_mCC022A025A17453CD29139AFD1E8D41A6382165D in Microsoft.MixedReality.QR.DotNet.o
(maybe you meant: _OpenXRFeature_Internal_GetProcAddressPtr_m0602653D4F5D88675A5BF43B01FF4FDA39BCFAE3, _IL2CPPLinkage_GetProcAddress_mCC022A025A17453CD29139AFD1E8D41A6382165D , _DotNETLinkage_GetProcAddress_m79E4DD96A6B2FD583A0AB015675FBA32FB4FFC18 , _Platform_GetProcAddress_Tismono_thread_cleanup_register_tCC33C68E8BCD23E82D0D58755E1EC33FAA6473EF_mACE8CA9F572762382E2AE56FFAB5F935986EAE9F_RuntimeMethod_var , _Platform_GetProcAddress_Tismono_thread_cleanup_initialize_t47DA46606DEF56D75E9EC34E6112B1103C81504B_m52973BF12627A9C7D82666A433E85AF16303D06F_RuntimeMethod_var , _Platform_GetProcAddress_m8A138762DA0CAD6F9DEF8F0C0695991736B6AB54_gp_0_0_0_0 , IL2CPPLinkage_GetProcAddress_mA609EBC5095D859227EF357532226E97A001812B , _Platform_GetProcAddress_TisRuntimeObject_m6B64DB980DF407E3E48678CAFAE93D631CBA8487_gshared , DotNETLinkage_GetProcAddress_m2D18702A661F869F9103108048060ABB33757CAB )
“_CoIncrementMTAUsage”, referenced from:
IL2CPPLinkage_CoIncrementMTAUsage_m5F1DDB0D034E0628A76A40D63EB88CB918A2769A in Microsoft.MixedReality.QR.DotNet.o
_IL2CPPLinkage_CoIncrementMTAUsage_mCC86D0565F6B8017F296965B7AE07931326BA2AD in Microsoft.MixedReality.QR.DotNet.o
(maybe you meant: IL2CPPLinkage_CoIncrementMTAUsage_m5F1DDB0D034E0628A76A40D63EB88CB918A2769A, _IL2CPPLinkage_CoIncrementMTAUsage_mCC86D0565F6B8017F296965B7AE07931326BA2AD , _DotNETLinkage_CoIncrementMTAUsage_m9A56165B3B962722D53F7AA578F5B89A73D28F17 , DotNETLinkage_CoIncrementMTAUsage_m692577AF7FF4285FA87890633B7BAA1585A8757A , _Platform_CoIncrementMTAUsage_mAD883D8E671B693F0C81F4DA68C27B4BA929C875 )
“_LoadLibraryExW”, referenced from:
IL2CPPLinkage_LoadLibraryExW_m88258A15EF4A7E746AB3C337AD85C9764256B63A in Microsoft.MixedReality.QR.DotNet.o
_IL2CPPLinkage_LoadLibraryExW_mB87CDA80FF9B4342CF3EA09AC21C3B90A01EB7E1 in Microsoft.MixedReality.QR.DotNet.o
(maybe you meant: DotNETLinkage_LoadLibraryExW_mF7345983B9F1DC51ECC21EB8A8E5635EA3E3DA96, _IL2CPPLinkage_LoadLibraryExW_mB87CDA80FF9B4342CF3EA09AC21C3B90A01EB7E1 , _DotNETLinkage_LoadLibraryExW_m600AEAB99F95C7118CBE00BF007C1AA1B3588BAF , IL2CPPLinkage_LoadLibraryExW_m88258A15EF4A7E746AB3C337AD85C9764256B63A )
“__NativeCamera_GetVideoThumbnail”, referenced from:
NativeCamera_NativeCamera_GetVideoThumbnail_m64F7069A3BBE8366C341432731146DB195690432 in Assembly-CSharp-firstpass.o
(maybe you meant: NativeCamera_NativeCamera_GetVideoThumbnail_m64F7069A3BBE8366C341432731146DB195690432)
“__NativeCamera_CheckPermission”, referenced from:
NativeCamera_NativeCamera_CheckPermission_m1603279A62274E5954E7CADA6A771CA7FEFBE39B in Assembly-CSharp-firstpass.o
_NativeCamera_CheckPermission_m08FFCA646CA1189D712D968FD2388FDBA2BADE8E in Assembly-CSharp-firstpass.o
(maybe you meant: NativeCamera_NativeCamera_CheckPermission_m1603279A62274E5954E7CADA6A771CA7FEFBE39B)
“__NativeCamera_RecordVideo”, referenced from:
NativeCamera_NativeCamera_RecordVideo_m6339AA5C04F21DCAA5467A2B7A4A4DEF4A00420E in Assembly-CSharp-firstpass.o
_NativeCamera_RecordVideo_m4A3E649E065F87090741777BA6962C69BFB21CE9 in Assembly-CSharp-firstpass.o
(maybe you meant: NativeCamera_NativeCamera_RecordVideo_m6339AA5C04F21DCAA5467A2B7A4A4DEF4A00420E)
“__NativeCamera_LoadImageAtPath”, referenced from:
NativeCamera_NativeCamera_LoadImageAtPath_m221925D6E2F770625420B27C622FAB1FE03083B4 in Assembly-CSharp-firstpass.o
(maybe you meant: NativeCamera_NativeCamera_LoadImageAtPath_m221925D6E2F770625420B27C622FAB1FE03083B4)
“__NativeCamera_HasCamera”, referenced from:
NativeCamera_NativeCamera_HasCamera_m1D9DEE42E3524E428E2A3EA9035D5041B7FD8D82 in Assembly-CSharp-firstpass.o
_NativeCamera_DeviceHasCamera_m6F30FA3AC64A389AC608E3C6F467664B0043052C in Assembly-CSharp-firstpass.o
(maybe you meant: NativeCamera_NativeCamera_HasCamera_m1D9DEE42E3524E428E2A3EA9035D5041B7FD8D82)
“__NativeCamera_TakePicture”, referenced from:
NativeCamera_NativeCamera_TakePicture_m9236EF843C4C6756A45FB7E9D07BDC7AE06C72C3 in Assembly-CSharp-firstpass.o
_NativeCamera_TakePicture_m30C6ADE957D7DADE2AD892F09903444D4197280F in Assembly-CSharp-firstpass.o
(maybe you meant: NativeCamera_NativeCamera_TakePicture_m9236EF843C4C6756A45FB7E9D07BDC7AE06C72C3)
“__NativeCamera_OpenSettings”, referenced from:
NativeCamera_NativeCamera_OpenSettings_mEFD58ADA5053648305EEC200C21BDCAD8D302ADC in Assembly-CSharp-firstpass.o
_NativeCamera_OpenSettings_m0A36255030B8286F5BDEB6F16EBB6A6307C61F57 in Assembly-CSharp-firstpass.o
(maybe you meant: NativeCamera_NativeCamera_OpenSettings_mEFD58ADA5053648305EEC200C21BDCAD8D302ADC)
“_RoGetActivationFactory”, referenced from:
IL2CPPLinkage_RoGetActivationFactory_m9C887477C3D3015D316DD19EE8792AC917AE3964 in Microsoft.MixedReality.QR.DotNet.o
_IL2CPPLinkage_RoGetActivationFactory_m396E3F4FFCD4E2FF1C433E8CA34D6D1BA34160B3 in Microsoft.MixedReality.QR.DotNet.o
(maybe you meant: _IL2CPPLinkage_RoGetActivationFactory_m396E3F4FFCD4E2FF1C433E8CA34D6D1BA34160B3, _DotNETLinkage_RoGetActivationFactory_m3575FC53278BB366B215254FEC37E4D8CEBB7B3B , DotNETLinkage_RoGetActivationFactory_m00724577CF96FEB5E0FFB522B428CD02D1703932 , _Platform_RoGetActivationFactory_m564CB2CE82933ADAF3917D6F2C30268FE2DA064B , IL2CPPLinkage_RoGetActivationFactory_m9C887477C3D3015D316DD19EE8792AC917AE3964 )
“__NativeCamera_GetVideoProperties”, referenced from:
NativeCamera_NativeCamera_GetVideoProperties_m79CA019272DD0027075D74D3A23DFBE89D6FF359 in Assembly-CSharp-firstpass.o
(maybe you meant: NativeCamera_NativeCamera_GetVideoProperties_m79CA019272DD0027075D74D3A23DFBE89D6FF359)
“_FreeLibrary”, referenced from:
IL2CPPLinkage_FreeLibrary_mC0D0B4E3B8334D0C5D4E119AC5DA6C55A7BBC4FB in Microsoft.MixedReality.QR.DotNet.o
_IL2CPPLinkage_FreeLibrary_mF549879616A09C8ED0DC2F0B642CD4396DE8C045 in Microsoft.MixedReality.QR.DotNet.o
(maybe you meant: _IL2CPPLinkage_FreeLibrary_mF549879616A09C8ED0DC2F0B642CD4396DE8C045, IL2CPPLinkage_FreeLibrary_mC0D0B4E3B8334D0C5D4E119AC5DA6C55A7BBC4FB , _DotNETLinkage_FreeLibrary_mC59CB2EAAC10C9BD423DCA36B8F63EDB45A85D38 , DotNETLinkage_FreeLibrary_m3616C25C515AB4936FE00444E5E021C7ECF3948C , _Platform_FreeLibrary_m8966EDA8D721BF8FBE1A2F66BA3957BEC966D529 )
“__NativeCamera_IsCameraBusy”, referenced from:
NCCameraCallbackiOS_NativeCamera_IsCameraBusy_m7CC6DA10B40BAA8899BD7E6FC11D11D798621D06 in Assembly-CSharp-firstpass.o
_NCCameraCallbackiOS_Update_m296DF85BC8BAB085E2C1D6F288089FFBD86C4A0C in Assembly-CSharp-firstpass.o
(maybe you meant: NCCameraCallbackiOS_NativeCamera_IsCameraBusy_m7CC6DA10B40BAA8899BD7E6FC11D11D798621D06)
“__NativeCamera_GetImageProperties”, referenced from:
NativeCamera_NativeCamera_GetImageProperties_m5C189E550D640027DBF1017BBEF36F4E922B9074 in Assembly-CSharp-firstpass.o
(maybe you meant: NativeCamera_NativeCamera_GetImageProperties_m5C189E550D640027DBF1017BBEF36F4E922B9074)
“__NativeCamera_CanOpenSettings”, referenced from:
NativeCamera_NativeCamera_CanOpenSettings_mC47D9CD64F8889E2597FE7343F592711250C9E6C in Assembly-CSharp-firstpass.o
_NativeCamera_CanOpenSettings_m685C49F266F62047E5BC6C05A4711C9D226F4A81 in Assembly-CSharp-firstpass.o
(maybe you meant: NativeCamera_NativeCamera_CanOpenSettings_mC47D9CD64F8889E2597FE7343F592711250C9E6C)
“__NativeCamera_RequestPermission”, referenced from:
NativeCamera_NativeCamera_RequestPermission_m9D5C4A3BAF2694A10802912DD1C661A6E911D424 in Assembly-CSharp-firstpass.o
_NativeCamera_RequestPermission_m39D3586CF46088278825CB57D3A42F661EB70ECA in Assembly-CSharp-firstpass.o
(maybe you meant: NativeCamera_NativeCamera_RequestPermission_m9D5C4A3BAF2694A10802912DD1C661A6E911D424)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Interestingly the NativeCamera (at the bottom of the error message) was working before, when we separated the Hololens part from the handheld part.
Has somebody faced a similar problem?
We are using:
- Unity 2020.3.23
- ARFoundation, ARKit & ARCore 4.1.9
- XR Plugin Managment 4.1.0
- Windows XR Plugin 4.6.2
- OpenXR PLugin 1.2.8
Thanks already for any help and hints.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|

