'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) 

enter image description here

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