Каков полный набор шагов для полной сборки пакета приложения Monotouch из командной строки? - PullRequest
3 голосов
/ 22 февраля 2012

Я хотел бы знать, что представляет собой полный набор шагов для создания приложения MonoTouch C #, состоящего из основной сборки приложения, содержащей файлы xib, и набора библиотечных сборок, которые также могут содержать файлы xib.

Мы пытаемся автоматизировать эти шаги с помощью правильного сценария 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 нет командной строки.

И другие шаги, которые я еще не получил, такие как подписывание приложений и ресурсы.

Надеюсь, мы сможем получить достаточно информации, чтобы разобраться в этом.

1 Ответ

3 голосов
/ 22 февраля 2012

Вы можете запустить из окна терминала или из задачи MSBuild инструмент /Applications/MonoDevelop.app/Contents/MacOS/mdtool, поставляемый с MonoDevelop.Например,

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

Это создаст приложение MonoTouch, включая все ваши шаги выше и любые будущие функции, которые будут добавлены.

...