Xamarin.iOS:本机链接错误:IOS中的文件数量是否有限制?

时间:2017-11-15 12:10:02

标签: xaml xamarin xamarin.ios xamarin.forms xamarin.android

我们正在开发一个大型的Xamarin.Forms项目,客户首先想要Android版本,所以我们完成整个Android项目并交付它,现在当我们开始处理IOS项目时,我们正面临挑战,因为我们不断添加更多IOS项目的表格。一些错误是

错误#1。 本机链接错误:不知道如何将指令ec7acce4引用_mono_create_corlib_exception_0.island转换为拇指 ' #object_System_Type_object_System_Globalization_CultureInfo' 来自/#.iOS/1db41bf625bf2eb66083739a668e7273/obj/iPhone/Debug/mtouch-cache/#.dll.armv7.o用于架构armv7 iOS

错误#2。 执行本机代码时获得SIGSEGV。这通常表明 单声道运行时或其中一个本机库中的致命错误 由您的应用程序使用。

由于我们没有取得任何进展,我们开始在Xamarin.forms中创建一个新的解决方案,并开始在每个Android和IOS中添加一个表单,它工作正常,直到特定数量的文件计数,之后我们开始得到相同的在IOS中再次出错。 该项目适用于大约867个文件。 (PCL - 638个文件,ios - 107个文件,Android - 122个文件)

只要我向PCL项目添加一组新表单,我就会在IOS项目中收到上述错误#1或错误#2。 Android项目运行正常。 没有错误序列,只是出现上述任何错误,减少文件数后,错误就消失了

IOS中的表格数量是否有限制?或者二进制大小是否有任何限制。根据我的理解,IOS允许最多100 MB的二进制文件。我目前的IOS二进制文件大约是55 MB

我被困住了,直到现在才找到任何解决方案。已经尝试升级/降级Xamarin.forms版本,但没有帮助,目前在Xamarin.forms 2.3.4.224 Xamrin.ios 10.3.1.8 Xamarin.Android 7.0.2.42 Xamarin 4.2.2.11 视觉工作室2015专业

还尝试在MAC,Visual Studio 2017 Professional上编译和打开项目,得到同样的错误 还尝试在MAC上的Xamarin工作室进行编译,仍然得到相同的错误。

1 个答案:

答案 0 :(得分:0)

似乎Xamarin为您的某个程序集生成的本机代码最终达到了原生(Mach-O)文件格式的大小限制。

<强>解决方案:

类似案例的解决方案之一是将--mono:framework添加到&#34;其他mtouch参数&#34;在iOS平台 - &gt;属性 - &gt; iOS构建。

然后单声道运行时将作为框架包含在应用程序中,而不是静态链接到主可执行文件中。

参考文献: