使用Armv7+Arm64架构构建统一的API应用程序(迁移后)效果良好,该应用程序在iPhone 5和iPhone 6上运行良好。但由于体系结构不兼容,它无法在iPhone 4S上运行。
尝试仅使用Armv7架构构建它失败了。这些是我得到的错误:
错误MT5210:本机链接失败,未定义符号:_res_9_init。请验证所有必要的框架都已被引用,并且本地库已正确链接。(MT5210)
错误MT5210:本机链接失败,未定义符号:_xmlDocGetRootElement。请验证所有必要的框架都已被引用,并且本地库已正确链接。(MT5210)
还有6个类似的。。。如何仅在Armv7上编译?
解决方案:由于Oyala绑定linkWith文件中缺少链接标志,Armv7生成失败。在修复标志(LinkerFlags="-lsdc++-lz-lxml2-lresolv")后,Armv7构建完成,没有出现任何错误。
它仍然不能解释为什么Armv7+Arm64(胖身材)没有失败。它只是跳过了Oyala的构建。这可能是Xamarin病毒。
这看起来像是Xamarin.iOS中的一个错误,它没有在fat(armv7+arm64)版本中包含某些库,而那些(有问题的)库会在仅armv7版本中引起问题。
也就是说,我相信通过将-gcc_flags -lxml
添加到项目的iOS构建选项中的额外mtouch参数中,构建问题将得到解决。
此外,我建议提交一个错误(http://bugzilla.xamarin.com)胖与瘦的区别。