Xamarin.iOS应用程序不会构建到设备,但会构建到模拟器;境界问题?

时间:2017-12-20 19:40:35

标签: xamarin xamarin.ios realm

在定位iOS设备时出现以下构建错误:

  

MTOUCH:错误MT2101:无法解析引用' System.Void * System.Runtime.CompilerServices.Unsafe :: AsPointer(!! 0&)',引用方法& #39; T Realms.MarshaledVector`1 :: MarshalElement(System.Int32)'在System.Runtime.CompilerServices.Unsafe,Version = 4.0.3.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'。

具体来说,我认为此处的引用是:T Realms.MarshaledVector

这在模拟器上构建良好,但在定位设备时失败。已安装Realm NuGet包。事实上,我只是删除了它并重新安装它,看看是否可能解决它;它没有。

任何人都知道其他任何事情要尝试进行此次运行,或者仅当目标是设备时才会导致此构建错误?

iOS version: 11.2.1 (15C153)
OSX version: 10.13.2
Visual Studio Community Version: 7.3.2 (build 12)
Xcode: 9.2 (9C40b)

...稍后......

好吧,看起来它绝对是王国。甚至是这样做的行为:

using Realms;
var settingsFilename = "/some/path/settings.realm";
var Config = new RealmConfiguration(settingsFilename);

导致Visual Studio社区无法使用上述错误构建项目。我在AppDelegate FinishedLaunching中有这段代码。

接下来,我会试着去除那里的一切,看看我猜怎么样。

...稍后......

好的,参考错误现在至少有所不同。

  

MTOUCH:错误MT2101:无法解析引用' System.Void * System.Runtime.CompilerServices.Unsafe :: AsPointer(!! 0&)',引用方法& #39; T Realms.MarshaledVector 1::MarshalElement(System.Int32)' in 'System.Runtime.CompilerServices.Unsafe, Version=4.0.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. Error processing method: 'T Realms.MarshaledVector 1 :: MarshalElement(System.Int32)'在汇编中:' Realm.dll'           无法解析System.Void * System.Runtime.CompilerServices.Unsafe :: AsPointer(!! 0&)

特别提到:in assembly: 'Realm.dll'

2 个答案:

答案 0 :(得分:0)

所以至少现在我做了什么,吃了一整天之后,我只剩下0个进步。我开始了一个新项目,安装了相同的依赖项

  
      
  • Realm(2.1.0)
  •   
  • Serilog(2.6.0)
  •   
  • Serilog.Sinks.Xamarin(0.1.29)
  •   
  • System.Reactive(3.1.1)
  •   
  • Xam.Plugin.Connectivity(3.0.3)
  •   
  • Xamarin.Auth(1.5.0.3)
  •   

没有错误。

所以我回到了我的客户项目,删除了packages.config中的所有软件包并重新安装了所有软件包。它似乎不再有这个构建错误(无法解析引用' System.Void * ... )。

在调试方案中,有时似乎无法正确部署到设备,并出现以下错误:

  

dyld:未加载库:@ rpath / libmonosgen-2.0.dylib

但清理项目并再次尝试,似乎解决了这个问题。我也可以在

下关闭增量构建

Project Settings -> Build -> iOS Build -> Enable Incremental Builds

这也将超过他的dyld装载问题。

根据其他问题Visual Studio Community missing developer tools for iOS 11.2.1, cannot debug,评论者还建议从解决方案中卸载项目并重新加载以解决问题。

所以我要算上我的祝福,继续前进,直到它再次爆炸。我应该注意到,在我将此项目中间的Visual Studio社区升级到: 7.3.2(build 12)之后,确实发生了这种情况。同样,它似乎只是在尝试在设备上进行调试时发生,在这种情况下是运行 iOS 11.2.1(15C153)的iPhone X.我还没有尝试过其他的设备/操作系统版本,因为再一次,这几天消耗了我整天。

答案 1 :(得分:0)

与Realm 2.0.0相同的错误。

我如何修理它:

  • 安装了NuGet包System.Runtime.CompilerServices.Unsafe
  • 删除了项目中的System.Runtime.CompilerServices.Unsafe lib 参考
  • 通过选择packages文件夹中的文件System.Runtime.CompilerServices.Unsafe.dll手动重新添加lib 项目。 (在步骤1中安装的那个)

希望它会有所帮助!