2012-02-22 4 views
3

xibファイルを含むメインアプリケーションアセンブリとxibファイルを含む可能性があるライブラリアセンブリのセットからなるMonoTouch C#アプリケーションを構築するための一連のステップが何であるかを知りたいと思います。コマンドラインからMonotouchアプリケーションバンドルを完全に構築するための一連のステップは何ですか?

私たちは、ここで取り上げない様々な理由から、適切なMSBuildスクリプト(MonoTouchがまだサポートしていない)を使用してこれらのステップを自動化しようとしています。例えば、SMCSを使用して、各アセンブリをコンパイルします)

1:

これまでのところ、ここで私が作ってみたものです

/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" 

、それはにISN (MonoDevelopのビルド出力ウィンドウから取得した)次の操作方法をクリアしてください:

1)埋め込みコンテンツを抽出します。 MonoDevelopのは、ちょうどこの出力:

Extracted HelloWorldScreen_iPhone.nib from MtLib.dll 
Extracted HelloWorldScreen_iPad.nib from MtLib.dll 

2)アプリケーションマニフェストを更新します。出力ウィンドウを構築MonoDevelopの中で与えられた、コマンドラインではありません。

3)デバッグ構成ファイルの更新:MonoDevelopビルド出力ウィンドウにはコマンドラインはありません。

4)デバッグ設定ファイルの更新:MonoDevelopビルド出力ウィンドウにはコマンドラインはありません。

私がまだ手に入れていないその他の手順は、まだアプリケーションの署名とリソースが好きです。

うまくいけば、ここで十分な情報を得て、うまくいくと思います。

答えて

3

端末ウィンドウまたはMSBuildタスク内で、MonoDevelopで提供されているツールを実行できます。例えば。

/Applications/MonoDevelop.app/Contents/MacOS/mdtool -v build -t:Build "-c:Debug|iPhoneSimulator" /path/to/your/app.csproj 

上記のすべての手順と今後追加される機能を含め、MonoTouchアプリケーションを構築します。

+0

いいえ、それは私が尋ねたものではありません。実際の手順を実行するMSBuildスクリプトを作成する必要があります。言い換えれば、私はMonoDevelopを動作していない "実験的な" msbuild/xbuild設定で動作させる必要があります。これは、msbuildとのより大きな統合プロセスの一部です。 – bright

+1

上記のコメントが明確であることを確認するだけです。Monotouchは通常の開発には.csprojファイルを使用しますが、msbuild/xbuildでは実行しません。代わりに、それはできることを解析し、残りを残します。ビルドプロセスを拡張しようとすると、予測できない混乱が生じます.csprojは単に尊重されません。私たちがやろうとしていることは、Monotouchが将来のある時に行うことを計画していることです。これは、より大きなワークフローの一部となる実際のMSBuild環境です。 – bright

+1

MonoDevelop IDE(コマンドライン上)の外に* MonoTouchアプリケーションをビルドすることができる*これは*現在のところ**完全な**一連のステップです。 'mtouch'ツールにはいくつかのオプションがあります(例:マニフェストと署名)は、MDの外側で使用される(たとえMDがそれ自身のコードを使用しているとしても)が、MDアドインが行うすべてのステップをカバーしない(特定の状況の場合にのみ起こる)。 – poupou