Xamarin MTOUCH:错误MT3001:无法AOT程序集iPhone/Debug/build-iphone7.1-10.1.1/MTOUCH-cache/build/xxx.exe

Xamarin MTOUCH:错误MT3001:无法AOT程序集iPhone/Debug/build-iphone7.1-10.1.1/MTOUCH-cache/build/xxx.exe,xamarin,xamarin.ios,Xamarin,Xamarin.ios,在带有Xamarin.iOS v10.3.1.7/Cycle8的Xamarin Studio v6.1.3中,我在尝试为Debug/iPhone构建exe时遇到以下错误 MTOUCH:错误MT3001:无法AOT程序集iPhone/Debug/build-iphone7.1-10.1.1/MTOUCH-cache/build/myapp.exe 我已经按照其他问题中的步骤为MTouch启用详细日志输出,为sdk启用全部链接,并查看输出窗口。有一个很容易修复的错误,但现在我不明白为什么AOT会失败

在带有Xamarin.iOS v10.3.1.7/Cycle8的Xamarin Studio v6.1.3中,我在尝试为Debug/iPhone构建exe时遇到以下错误

MTOUCH:错误MT3001:无法AOT程序集iPhone/Debug/build-iphone7.1-10.1.1/MTOUCH-cache/build/myapp.exe

我已经按照其他问题中的步骤为MTouch启用详细日志输出,为sdk启用全部链接,并查看输出窗口。有一个很容易修复的错误,但现在我不明白为什么AOT会失败

以下是构建日志文件的摘录:

MTOUCH: error MT3001: Could not AOT the assembly '/.../obj/iPhone/Debug/build-iphone7.1-10.1.1/mtouch-cache/Build/myapp.exe'
          at Xamarin.Bundler.AOTTask.Build () [0x00117] in <e7bcfe3010854457a2ec851b72b35cf0>:0 
          at Xamarin.Bundler.BuildTask.Execute () [0x00000] in <e7bcfe3010854457a2ec851b72b35cf0>:0 
          at Xamarin.Bundler.BuildTasks.Execute (Xamarin.Bundler.BuildTask v) [0x00000] in <e7bcfe3010854457a2ec851b72b35cf0>:0 
          at System.Threading.Tasks.Parallel+<ForEachWorker>c__AnonStorey6`2[TSource,TLocal].<>m__0 (System.Int32 i) [0x00012] in <8f2c484307284b51944a1a13a14c0266>:0 
          at System.Threading.Tasks.Parallel+<ForWorker>c__AnonStorey3`1[TLocal].<>m__1 () [0x000ed] in <8f2c484307284b51944a1a13a14c0266>:0 
    Task "MTouch" execution -- FAILED
    Done building target "_CompileToNative" in project "/...myapp.csproj".-- FAILED
MTOUCH:error MT3001:无法AOT程序集“/…/obj/iPhone/Debug/build-iphone7.1-10.1.1/MTOUCH cache/build/myapp.exe”
位于:0中的Xamarin.Bundler.AOTTask.Build()[0x00117]
在0中的Xamarin.Bundler.BuildTask.Execute()[0x00000]处
在Xamarin.Bundler.BuildTasks.Execute(Xamarin.Bundler.BuildTask v)[0x00000]中:0
在System.Threading.Tasks.Parallel+c__AnonStorey6`2[TSource,TLocal].m_u 0(System.Int32 i)[0x00012]中:0
在System.Threading.Tasks.Parallel+c_uAnonStorey3`1[TLocal].m_u1()[0x000ed]中:0
任务“MTouch”执行--失败
已完成在项目“/…myapp.csproj”中生成目标“\u CompileToNative”――失败
除此之外,什么都没有。没有错误。但是有无数的警告

完整日志位于以下OneDrive链接上:


有什么想法吗S

我们从以下方面找到了解决方案:

  • 我们的框架库似乎不包括ARM7和ARM64切片。这是AOT步骤失败的部分原因

  • 另一部分是Xamarin.iOS中的一个bug,该bug在10.4.0.67或更高版本中已修复

  • Xamarin AOT编译器将被更新,以便更好地输出有关此操作失败原因的错误消息,并在下一个周期10.4.0.67或更高版本中修复错误


  • 你曾试图用什么方法来解决这个问题?我不想提供一个你已经尝试过的解决方案,在网络上搜索类似的错误(有很多)。大多数问题似乎都是通过更新Xamarin Studio和Xamarin.iOS来解决的,因为我使用的是最新版本,所以这不起作用。有些问题可以通过在“属性”窗口中设置“全部链接”、“部分链接”或“无链接”来解决。也没用。有些问题通过清除/删除bin/obj和重新启动来解决。也没用。通过将命令行args-v-v-v-v放入MTouch并查看日志,可以解决一个或两个问题。我做到了,并且成功地解决了代码中的一个问题,但是日志没有给出第二个问题的线索…:/好吧,看来你也发现了和我一样的线索。你可能有吗?如果不是这样的话,我强烈建议您在上发布一个bug。不幸的是,这不是一个新问题,已经出现在许多不同的版本中。查看您的日志文件后,我认为失败的原因是在您的绑定项目中。您可以在某处共享吗?@Dr.ABT您可以使用lipo-info path\u to\u framework\u或.a\u文件检查框架中包含的平台