我想知道完整的一套步驟是建立一個MonoTouch C#應用程序,它由包含xib文件的主應用程序集和一組庫文件組成的庫組件組成。從命令行完整構建Monotouch應用程序包的完整步驟是什麼?
我們試圖通過自動化適當的MSBuild腳本,這些步驟(其中的MonoTouch尚未支持),對此我不會去到各種原因,把重點放在這個問題在這裏。
到目前爲止,這是我想出來的:
1)使用的SMC編輯各個組件,例如
/Developer/MonoTouch/usr/bin/smcs /noconfig
"/out:/Users/bright/src/MonoTouchAppWithLib/AppLib/bin/Debug/AppLib.dll
"/r:/Developer/MonoTouch/usr/lib/mono/2.1/System.dll"
"/r:/Developer/MonoTouch/usr/lib/mono/2.1/System.Xml.dll"
"/r:/Developer/MonoTouch/usr/lib/mono/2.1/System.Core.dll"
"/r:/Developer/MonoTouch/usr/lib/mono/2.1/monotouch.dll"
/nologo /warn:4 /debug:+ /debug:full /optimize- /codepage:utf8
"/define:DEBUG"
/t:library "/Users/bright/src/MonoTouchAppWithLib/AppLib/Class1.cs"
2)編譯接口定義:在每個組件中的每個XIB文件運行ibtool,例如
/Developer/usr/bin/ibtool
--errors --warnings --notices --output-format human-readable-text
"/Users/bright/src/App/App/ViewController_iPhone.xib"
--compile "/Users/bright/src/App/App/bin/Debug/App.app/ViewController_iPhone.nib"
--sdk "/Developer/Platforms/iPhoneSimulator.platform/Developer/
SDKs/iPhoneSimulator4.3.sdk"
3)編譯爲本機代碼:
/Developer/MonoTouch/usr/bin/mtouch
-sdkroot "/Applications/Xcode.app/Contents/Developer"
-v --nomanifest --nosign -sim
"/Users/bright/src/App/App/bin/iPhoneSimulator/Debug/App.app"
-r "/Users/bright/src/App/AppLib/bin/Debug/AppLib.dll"
-r "/Developer/MonoTouch/usr/lib/mono/2.1/System.dll"
-r "/Developer/MonoTouch/usr/lib/mono/2.1/System.Xml.dll"
-r "/Developer/MonoTouch/usr/lib/mono/2.1/System.Core.dll"
-r "/Developer/MonoTouch/usr/lib/mono/2.1/monotouch.dll"
-debug -profiling -nolink -sdk "5.0"
"/Users/bright/src/App/App/bin/iPhoneSimulator/Debug/App.exe"
然而,它不是」牛逼清楚如何做到以下幾點(從MonoDevelop中的生成輸出窗口拍攝),以及以什麼順序:
1)提取嵌入的內容。 MonoDevelop的只是輸出這樣的:
Extracted HelloWorldScreen_iPhone.nib from MtLib.dll
Extracted HelloWorldScreen_iPad.nib from MtLib.dll
2)更新應用程序清單:有在MonoDevelop中給出的生成輸出窗口沒有命令行的。
3)更新調試配置文件:有一個在MonoDevelop中給出的生成輸出窗口沒有命令行。
4)更新調試設置文件:有在MonoDevelop中給出的生成輸出窗口沒有命令行的。
而且我還沒有得到做但像應用程序簽名和資源等步驟。
希望我們可以在這裏獲得足夠的信息來實現它。
不,這不是我問的。我需要*創建一個運行實際步驟的MSBuild腳本。換句話說,我需要讓MonoDevelop在「實驗性」msbuild/xbuild設置中工作,這從未奏效。這是使用msbuild進行更大集成過程的一部分。 – bright 2012-02-22 13:34:31
只是爲了確保上面的評論是明確的:Monotouch使用.csproj文件進行正常開發,但不通過msbuild/xbuild運行。相反,它只是解析它可以做的事情,並留下剩下的事情。當人們試圖擴展構建過程時,結果是不可預知的混亂 - csproj根本無法實現。我們正在努力做的是Monotouch計劃在未來的某個時間做什麼 - 這是一個真正的MSBuild環境,可以成爲更大型工作流程的一部分。 – bright 2012-02-22 13:39:58
這是*目前唯一的**完整**步驟集,允許您在MonoDevelop IDE之外(在命令行上)構建任何* MonoTouch應用程序。 'mtouch'工具有一些選項(例如清單和簽名)在MD之外使用(即使MD使用它自己的代碼),但不包括MD插件所做的每個步驟(某些只發生在特定情況下)。 – poupou 2012-02-22 14:16:54