为IOS创建AOT清单(ExecutionEngineException)

时间:2012-10-01 10:38:47

标签: xamarin.ios aot executionengineexception

首先,我在answers.unity.com上发布了一个类似的问题,并且在意识到它影响了一个更广泛的社区...所以请不要把它作为交叉点。

最近向IOS部署C#代码对我来说是一场噩梦。当我尝试将我的游戏部署到IPAD时,所有都以ExecutionEngineException开始,我使用了一个成熟的单元测试组件。

过去几天我做了功课,发现了几十个与ExecutionEngineException相关的问题。据我所知,这里没有神奇的解决方案,只能解决具体的代码。

现在问题出在这里:假设你有一个经过单元测试的代码。 (例如游戏AI或任何与IOS平台无直接关系的东西)在IOS上运行时,这将转向雷区。你无法知道,也不能单元测试代码的哪一部分会破坏。

这会破坏我(我们的)关于软件质量和测试的所有想法......

我们必须在这里找到解决方案。理想情况下,我们应该在桌面上针对其单元测试运行AOT-ed代码。我认为目前不可能,请纠正我,如果我错了并分享步骤说明如何做(最好是在Windows?)

作为备份计划,我们必须创建一个详细的列表,如果定位AOT-ed平台,如IOS

,那么构建的代码是什么样的

到目前为止我的经历:

1)将FirstOrDefault与值类型一起使用 2)使用Sum(customType =(gt)customType.Property)

有人知道如何处理这个问题吗?

此致

1 个答案:

答案 0 :(得分:4)

  

假设你有一个经过单元测试的代码。

如果您已经进行了单元测试,那么您很幸运。您只需使用Touch.Unit在iOS设备上调整这些单元测试。

  

作为备份计划,我们必须创建一个详细的列表,如果定位AOT-ed平台,如IOS

,那么构建的代码是什么样的

您最接近的是MonoTouch的limitation页面。上下文而不是API通常是最重要的细节。

E.g。使用value-type的泛型会产生问题(因为很难检测到需要生成的内容)。在使用LINQ时,人们通常会点击,但它不是LINQ问题 - 而是LINQ查询中使用的类型。

  

1)将FirstOrDefault与值类型

一起使用

AFAIK已在MonoTouch中修复了一段时间(至少有几种变体)。 OTOH Unity引擎可能还没有那些修复。

  

2)使用Sum(customType =(gt)customType.Property)

在不知道类型的情况下,无法确定其是否有效。如果/当您遇到此类情况时,请将其报告给bugzilla,因为我们可以将它们包含在我们的测试套件中(对于将来的版本),并且通常能够为大多数情况提供快速解决方案。