Build for iPhone无法正常工作

时间:2016-12-21 09:11:57

标签: ios xamarin xamarin.ios mvvmcross

当我想开始在真实设备上调试应用时,我遇到了一个奇怪的问题。

问题出现在构建声音如下:

  

" C:\ Program Files   (x86)\ MSBuild \ Xamarin \ iOS \ Xamarin.iOS.Common.targets(696,3):错误:   无法解析" System.Threading.Tasks.Task`1   Acr.UserDialogs.IUserDialogs :: ConfirmAsync(System.String,System.String,System.String,System.String)"   参考来自" Acr.UserDialogs.Interface,版本= 1.0.0.0,   Culture = neutral,PublicKeyToken = null" 5个5> Build FAILED。"

奇怪的是,如果我只是在模拟器上运行它(不改变任何其他东西),它就可以了。如果我选择"不要链接"项目选项中的选项 - > iOS Build - >链接器选项 - >链接器行为:不要链接它也可以在设备上工作。 我曾尝试使用该软件包的不同版本(Acr.UserDialogs),但没有改变。

为什么会发生这种情况,为了能够在设备上运行带有'链接器行为的应用,我应该怎么做:仅限链接SDK程序集?'

谢谢!

1 个答案:

答案 0 :(得分:0)

iOS链接器的主要目标是减小捆绑包的大小。在这样做时,它还将删除未使用的代码,这可能导致许多问题。现在我无法确切地说出你的问题是什么。在我的情况下,例如,构造函数被删除,因为它们无处调用。然而,这不是真的,因为类是使用IoC创建的,因此使用了构造函数,尽管没有直接引用它们。 如果您是有问题的程序集的作者,则可以使用[Preserve]属性标记导致链接器问题的类。这将告诉链接器让这些类安静下来。 如果不是,则可以通过在mtouch参数中提供--linkskip = AssemblyName来排除仅连接prosess的一个程序集是iOS项目属性。