2012-10-01 72 views
4

首先,我在answers.unity.com上發佈了一個類似的問題,並且意識到它影響了一個更廣泛的社區......所以請不要將其作爲交叉發佈。最近對IOS部署C#代碼成了我的噩夢。當我嘗試將我的遊戲部署到IPAD時,所有的ExecutionEngineException都開始了,我用我的一個成熟的單元測試了組件。爲IOS創建AOT清單(ExecutionEngineException)

在過去的幾天中,我做了我的功課,並發現了幾十個ExecutionEngineException相關的問題。據我所知,這裏沒有神奇的解決方案,只能解決特定的代碼。

現在問題是:假設你有一個良好的單元測試代碼。 (例如遊戲人工智能或任何與IOS平臺無關的東西)當在IOS上運行時,這將變成雷區。你不知道,也沒有單元測試哪部分代碼會中斷。

該遺址都是我(我們?)對軟件質量和測試的想法...

我們必須在這裏找到一個解決方案。理想情況下,我們應該在桌面上針對其單元測試運行AOT-ed代碼。我認爲這是不可能的,請糾正我,如果我錯了,並分享步驟指示如何做到這一點(最好在Windows?)

作爲備份計劃,我們必須創建一個詳細的清單,什麼樣的代碼構造不如果靶向AOT-ED平臺,像IOS

我的迄今爲止的經驗使用:

1)使用FirstOrDefault值類型 2)用總和(customType =(GT)customType.Property)

任何人有關於如何處理這個問題的任何想法?

問候

回答

4

假設你有一個好單元測試代碼。

如果你已經有單元測試,那麼你很幸運。您只需使用Touch.Unit即可在iOS設備上進行這些單元測試。

我們必須創建一個詳細的列表備份計劃,什麼樣的代碼構造不若針對AOT-ED平臺,像IOS

你會得到最接近的是MonoTouch中的limitation頁面中使用。上下文,而不是API,通常是最重要的細節。

E.g.使用值類型的泛型會產生問題(因爲很難檢測到需要生成的東西)。在使用LINQ時,人們經常會使用,但這不是LINQ問題,而是LINQ查詢中使用的類型。

1)使用FirstOrDefault值類型

AFAIK這就是被固定在MonoTouch的相當長的一段時間(至少它的若干變型)。OTOH Unity引擎可能還沒有那些修復程序。

2)用總和(customType =(GT)customType.Property)

這就是不知道的類型(一個或多個)的情況下,使得不能說,如果它工作或沒有。如果/當您遇到這種情況時,請將它們報告給bugzilla,因爲我們可以將它們包含在我們的測試套件中(用於將來的版本),並且通常能夠爲大多數情況提供快速解決方案解決方案。