我想知道构建一个包含xib文件的MonoTouch C#应用程序的完整步骤,以及一组库程序集,这些库程序集也可能包含xib文件。
我们正在尝试通过适当的MSBuild脚本自动化这些步骤(MonoTouch尚未支持),出于各种原因,我不会在这里详细说明,只关注问题本身。
到目前为止,这是我想出的步骤:
1)使用smcs编译每个程序集,例如:
我们正在尝试通过适当的MSBuild脚本自动化这些步骤(MonoTouch尚未支持),出于各种原因,我不会在这里详细说明,只关注问题本身。
到目前为止,这是我想出的步骤:
1)使用smcs编译每个程序集,例如:
/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) 编译接口定义:在每个程序集中运行ibtool,对每个xib文件进行编译,例如:
/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构建输出窗口中没有给出命令行。
还有其他步骤,比如应用签名和资源,我还没有完成。
希望我们能够在这里获得足够的信息来继续进行。
mtouch
工具有一些选项(例如清单和签名),可以在MD之外使用(即使MD使用自己的代码),但这并不涵盖MD插件执行的每个步骤(某些步骤仅在特定情况下发生)。 - poupou