0

在为 Release 构建我的 Xamarin iOS (10.4.0.88) 项目时,仅启用 Link SDK 程序集时出现以下错误。我有 Mono 版本 4.8.0.459

C:\Program Files (x86)\MSBuild\Xamarin\iOS\Xamarin.iOS.Common.targets(694,3):警告:无法将 Aot 文件复制到目标目录 /Users/markmeyer/Library/Caches/Xamarin /mtbs/builds/ServiceOrdersMobileApps.iOS/295315d462497600265210bd6b0fdce2/obj/iPhone/Release/mtouch-cache/64/Build/Msym/Msym/tmp:无法启动进程。1> --- 内部异常 1> System.ComponentModel.Win32Exception (0x80004005): ApplicationName='mono-symbolicate', CommandLine='store-symbols "/Users/markmeyer/Library/Caches/Xamarin/mtbs/builds/ServiceOrdersMobileApps. iOS/295315d462497600265210bd6b0fdce2/bin/iPhone/Release/ServiceOrdersMobileAppsiOS.app.mSYM" "/Users/markmeyer/Library/Caches/Xamarin/mtbs/builds/ServiceOrdersMobileApps。--- 1> 进程以代码 1 退出,命令:1> /Library/Frameworks/Mono.framework/Versions/Current/bin/mono /Library/Frameworks/Mono.framework/Versions/Current/lib/mono/4.5/ mono-cil-strip.exe /Users/markmeyer/Library/Caches/Xamarin/mtbs/builds/ServiceOrdersMobileApps.iOS/295315d462497600265210bd6b0fdce2/obj/iPhone/Release/mtouch-cache/64/Build/System.Net.Http.Primitives。 dll /Users/markmeyer/Library/Caches/Xamarin/mtbs/builds/ServiceOrdersMobileApps.iOS/295315d462497600265210bd6b0fdce2/bin/iPhone/Release/ServiceOrdersMobileAppsiOS.app/.monotouch-64/System.Net.Http.Primitives.dll 1> Mono CIL剥离器 1> 错误:System.ArgumentOutOfRangeException:索引超出范围。必须是非负数且小于集合的大小。1> 参数名称:索引 1> 在 System.Collections.CollectionBase.System。/Users/markmeyer/Library/Caches/Xamarin/mtbs/builds/ServiceOrdersMobileApps.iOS/295315d462497600265210bd6b0fdce2/obj/iPhone/Release/mtouch-cache/64/Build/System.Net.Http.Primitives.dll. 1> --- 内部异常 1>C:\Program Files (x86)\MSBuild\Xamarin\iOS\Xamarin.iOS.Common.targets(694,3): 错误:无法剥离程序集/Users/markmeyer/Library/Caches/Xamarin/mtbs/builds/ServiceOrdersMobileApps.iOS/295315d462497600265210bd6b0fdce2/obj/iPhone/Release/mtouch-cache/64/Build/System.Net.Http.Primitives.dll。1> --- 1> 在 /Users/builder/data/lanes/3985/9975cb17/source/xamarin-macios/tools 中的 MonoTouch.Tuner.Stripper.Process (System.String assembly_file, System.String output_file) [0x000ba] /mtouch/Stripper.cs:33 1> 在 /Users/builder/data/lanes/3985/9975cb17/source/xamarin-macios/tools 中的 Xamarin.Bundler.Target.m__2 (Xamarin.Bundler.Assembly 程序集)[0x00065] /mtouch/Target.cs:1041 1> 在 System.Threading.Tasks.Parallel+c__AnonStorey6 2[TSource,TLocal].<>m__0 (System.Int32 i) [0x00012] in <12e050e5b3d34326a1b4e2e7624e75da>:0 1> at System.Threading.Tasks.Parallel+<ForWorker>c__AnonStorey31[TLocal].<>m__1 () [0x000ed] in <12e050e5b3d34326a1b4e2e7624e75da>:0

我有以下额外的 mtouch 参数

-cxx -gcc_flags "-lc++" -v -v -v -v

如果我关闭链接器,一切都会构建并正常工作。我需要链接器才能让我的应用程序获得应用程序商店的批准,因为它会删除我不需要的东西(例如 CallKit)。有什么建议么?

4

1 回答 1

1

我一直遇到同样的问题,刚刚找到了解决方案。这似乎是 Xamarin iOS (10.4) 和 mono 框架的当前 beta 版本的问题。

假设您不在 Xamarin 的稳定频道上:

在 Mac 上打开 Xamarin Studio,然后从主菜单中单击检查更新。切换回稳定频道并将您的 Mono 框架和 Xamarin iOS 版本降级到当前版本。

这样做之后,我能够使用 Xamarin Studio 构建应用程序存档并启用链接以在应用程序商店中发布。

如果您一直在使用 Visual Studio for Mac 预览版,则此版本的 Mono 框架与它不兼容,因此您必须在 Windows 上坚持使用 Xamarin Studio 或 Visual Studio。

于 2017-01-19T19:57:51.437 回答