Delphi XE2에서 새로 지원하는 크로스 컴파일 기능을 이용하여 Mac OSX 에서 동작하는 델파이 응용 프로그램을 만들어 보겠습니다.


Delphi XE2에서 작성하는 Mac OSX 프로그램은 FireMonkey를 기반으로 동작하므로 위의 그림과 같이 FireMonkey HD Application 프로젝트를 만드는 것을 시작점으로 Hello OSX를 만들어 봅니다.

FireMonkey 기반의 프로그램 개발은 기존의 VCL기반의 프로그램 개발과 동일한 방법으로 진행 할 수 있으므로 버튼 컴포넌트와 에디트 컴포넌트를 화면에 디자인하고 버튼클릭 이벤트에 다음과 같이 코딩합니다.

 

procedure TForm1.Button1Click(Sender: TObject);

begin

Edit1.Text := ‘Hello OSX!’;

end;

 

프로그램을 바로 실행하면 기존 Win32 기반의 FireMonkey Application을 볼 수 있습니다.

  • Add Platform

FireMonkey 기반으로 작성된 프로그램은 Delphi IDE에서 플랫품을 추가 하는 방법으로 Mac OSX에서 실행 가능한 실행 모듈을 생성할 수 있습니다.

아래의 그림과 같이 Delphi Project Manager에서 Add Platform메뉴를 선택하고 Select Platform 다이얼로그에서 OSX를 선택하고 확인을 누릅니다.

컴파일후 실행하면 Deploy 오류를 만나게 됩니다. 이때 배포를 위해 필요한 것이 PA(Platform Assistant) Server 입니다.

  • PA(Platform Assistant) Server

PA Server는 타겟 플랫폼(OSX, Windows64 등)에 설치해서 배포, 실행, 디버깅을 원격에서 실행 할 수 있는 프로그램으로 아래의 위치에 있는 프로그램을 복사하여 타겟 플랫폼에 설치합니다.

C:\Program Files\Embarcadero\RAD Studio\9.0\PAServer

Setup_paserver.exe 파일은 Windows64 용이며 Setup_paserver.zip 파일은 Mac OSX용입니다. Setup_paserver.zip 파일을 실행 하고자 하는 맥킨토시에 복사하고 압축을 해제하면 Mac OSX에서 실행 가능한 Setup_paserver.app 파일이 생성됩니다.

위의 그림과 같이 맥킨토시에서 PA Server를 설치하면 /Users/사용자명/Applications/Embarcadero 위치에 PA Server가 아래의 그림과 같이 설치됩니다.

맥 컴퓨터에서 터미널 혹은 Mac Finder를 이용하여 paserver를 실행 시키면 아래의 그림과 같은 터미널 프로그램이 동작됩니다. 참고로 scratch-dir 에는 Delphi XE2에서 실행 후 배포할 실행 파일이 생성됩니다.

Password 입력란에 원하는 패스워드를 입력하면 맥용 paserver가 기본포트번호 64211번을 오픈하고 대기상태로 원격 접속을 기다립니다. 프롬프트에서 help 키워드를 입력하면 도움말을 참조 할 수 있습니다. paserver가 실행중인 컴퓨터의 ip번호를 확인하고 다시 윈도우로 돌아가서 Delphi XE2에서 원격 프로파일 설정을 마무리해 봅시다.

  • 원격 프로파일 설정

원격으로 맥 OSX에서 FireMonkey 응용 프로그램을 실행 시키기 위해서는 원격접속을 위한 프로파일을 먼저 정의 해 주어야만 실행, 디버깅, 배포를 할 수 있습니다. 프로파일을 정의 하기 위해서는 위의 그림과 같이 타겟 플렛폼을 선택하고 오른쪽 버튼을 눌러 Edit Profile을 선택합니다.


위의 그림과 같이 Host name 항목에 원격 컴퓨터의 아이피, 그리고 Port Number 에 앞에서 실행해 두었던 paserver가 동작하면서 지정된 포트번호 그리고 paserver 실행시에 입력했던 패스워드를 입력하고 Test Connection 버튼을 눌러서 연결을 확인해 봅니다. 테스트 연결이 정상적으로 실행되지 않는다면 앞으로 돌아가 다시 처음부터 차근차근 점검해 보세요.

테스트 커넥션이 정상적으로 진행 되었다면 이제는 Max OSX에서 Delphi XE2로 작성한 프로그램을 실행할 수 있습니다. F9키를 눌러서 실행 시키면 원격 Mac 컴퓨터에서 다음의 화면과 같은 실행 화면을 볼 수 있을 것입니다.

Paserver는 원격 컴퓨터에서도 기존 Win32 환경과 동일한 방법으로 디버깅을 수행 할 수 있으므로 F7, F8 키와 Break Point를 이용하여 디버깅 할 수 있습니다.

Hello OSX의 실행결과 화면

배포파일은 원격 컴퓨터의 paserver가 설치된 디렉토리의 아래에 scratch-dir 이하에 .app 확장자가 붙어서 배포됩니다.

번호 제목 글쓴이 날짜 조회 수
공지 [DelphiCon 요약] 코드사이트 로깅 실전 활용 기법 (Real-world CodeSite Logging Techniques) 관리자 2021.01.19 15417
공지 [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) 관리자 2020.11.16 13960
공지 [10.4 시드니] What's NEW! 신기능 자세히 보기 관리자 2020.05.27 16496
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 22048
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 23267
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 18921
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 [1] 관리자 2015.06.30 39245
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) 험프리 2014.01.16 174696
563 [업데이트][핫픽스][10 시애틀] OS X 앨 캐피텐 지원과 iOS SDK 호환성 강화를 위한 PAServer 핫픽스 출시 험프리 2015.10.02 783
562 iOS 개발환경 설정이 잘 되지 않은 경우 체크사항 - iOS 버전 확인 필요 file Humphery 2015.10.01 826
561 안드로이드 개발환경 추가 조치방법 - RAD Studio에서 SDK 설정 Humphery 2015.10.01 5557
560 [추가자료] 안드로이드 개발환경 추가 조치방법 - 수동 SDK Tools 업데이트 file Humphery 2015.10.01 3053
559 iOS9의 새로운 기능인 "App transport Security" 예외 허용을 위한 Info.plist xml 수정방법 [1] Humphery 2015.10.01 847
558 [마이그레이션] 함수(또는 변수)에 빨간밑줄이 가고 컴파일 시 Undeclared Identifier 오류 시 조치방법 file 험프리 2015.09.30 2363
557 XE7과 XE8에서 iOS 9용 iOS 32비트 애플리케이션을 빌드하는 절차안내. Humphery 2015.09.25 474
556 이 달의 기술자료 - 2015년 10월 file 험프리 2015.09.25 529
555 [무료 온라인 세미나] 사물인터넷 실제 구현하기 DeepDive! 관리자 2015.09.15 390
554 바이너리 폼파일(*.dfm)을 텍스트 폼파일로 변경하는 도구 Humphery 2015.09.15 1485
553 [발표자료] 20150910 "RAD Studio 10 시애틀" 출시 기술 워크샵 관리자 2015.09.11 308
552 델파이 문서화 도구 참고링크 Humphery 2015.09.11 1161
551 [무료 온라인 세미나] 새로운 RAD Studio 10 시애틀: 윈도우 10 혜택을 누리세요! 관리자 2015.09.11 276
550 [시애틀] 안드로이드 서비스 앱을 만들 수 있습니다. Humphery 2015.09.07 691
549 [시애틀] 컨트롤 힌트, 윈도우 10 용 네이티브 랜더링 등 윈도우 10용 FMX! 험프리 2015.09.07 1220
548 [시애틀] 비콘펜스(BeaconFence)등 새로운 오픈 소스와 컴포넌트 패키지를 IDE에서 직접 확보할 수 있습니다. Humphery 2015.09.07 942
547 [시애틀] 윈도우32비트 프로젝트에서 C++11 표준을 적용할 수 있습니다. Humphery 2015.09.07 1114
546 [시애틀] 스타일북 컴포넌트에 여러개의 플랫폼 스타일을 담을 수 있습니다. Humphery 2015.09.04 563
545 [시애틀] 20개 이상의 IDE 생산성 기능들이 내장되어 생산성, 품질, 안정성이 향상됩니다. Humphery 2015.09.04 442
544 [시애틀] iOS 64bit와 유니버셜앱을 만들고 디바이스에서 디버깅할 수 있습니다. Humphery 2015.09.04 507