xib 파일을 포함하는 주 응용 프로그램 어셈블리와 가능하면 xib 파일을 포함하는 라이브러리 어셈블리로 구성된 MonoTouch C# 응용 프로그램을 빌드하는 단계가 무엇인지 알고 싶습니다.명령 행에서 Monotouch 앱 번들을 완전히 빌드하기위한 전체 단계는 무엇입니까?
우리는 여기서 다루지 않을 여러 가지 이유로 적절한 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) 인터페이스 정의를 컴파일합니다 각 어셈블리의 각 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 스크립트를 만들어야합니다. 다른 말로하면, 결코 효과가없는 "실험적"msbuild/xbuild 설정에서 MonoDevelop 작업이 필요합니다. 이것은 msbuild와의보다 큰 통합 프로세스의 일부입니다. – bright
위의 설명이 확실한지 확인하기 위해 Monotouch는 표준 개발을 위해 .csproj 파일을 사용하지만 msbuild/xbuild를 통해 실행하지 않습니다. 대신 그것은 단지 할 수있는 것을 파싱하고 나머지는 남겨 둡니다. 사람이 빌드 프로세스를 확장하려고하면 결과가 예측할 수없는 혼란입니다. csproj는 단순히 존중되지 않습니다. 우리가하려고하는 것은 Monotouch가 "언젠가는 미래"에 할 계획 인 것입니다 - 더 큰 워크 플로우의 일부가 될 수있는 실제 MSBuild 환경. – bright
MonoDevelop IDE (명령 줄에서) 밖에서 MonoTouch 응용 프로그램을 * 빌드 할 수있게하는 것은 * 현재 ** 유일한 ** 완전한 ** 일련의 단계입니다. 'mtouch'도구에는 몇 가지 옵션이 있습니다 (예 :매니 페스트 및 서명)은 MD 외부에서 사용될 수 있지만 (MD가 자체 코드를 사용하더라도) MD 추가 기능이 수행하는 모든 단계를 다루지는 않습니다 (특정 상황에서만 발생하는 경우도 있음). – poupou