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 22115
공지 [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) 관리자 2020.11.16 20659
공지 [10.4 시드니] What's NEW! 신기능 자세히 보기 관리자 2020.05.27 22701
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 28461
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 29722
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 25071
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 [1] 관리자 2015.06.30 46008
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) 험프리 2014.01.16 181771
» Delphi XE2에서 맥 애플리케이션을 만들어 보자 박병일 2012.01.18 13073
22 델파이 XE2로 아이폰앱 만들기 박병일 2012.01.18 13076
21 델파이 XE2로 만든 아이폰 앱 - TicTacToe file 박병일 2012.01.17 14012
20 2012년 소프트웨어 트랜드 세미나 박병일 2012.01.12 7628
19 [링크]안드로이드를 위한 데이터 스냅 서버 박병일 2012.01.12 8450
18 VCL Style Util 박병일 2012.01.11 10305
17 32개의 Rad Studio 비디오 튜토리얼 박병일 2012.01.07 3843
16 델파이 에서 안드로이드로 박병일 2012.01.06 6214
15 SendMessage 함수를 이용한 메세지 전송 관리자 2012.01.05 18387
14 델파이 XE2의 Namespace 문제 관리자 2011.12.22 5490
13 RichEdit 에서 라인과 칼럼을 알아내기 박병일 2011.12.22 6747
12 PrintDialog 를 사용하지 않고 프린트 하기 박병일 2011.12.22 6187
11 Image 에 글자 출력하기 박병일 2011.12.22 7312
10 Form에 있는 콤포넌트를ListView 로 나타내기 박병일 2011.12.22 5609
9 DBGrid 에서 GraphicsField 보여주기 박병일 2011.12.22 5788
8 DBGrid 에서 Cell 모양의 색깔 바꾸기 박병일 2011.12.22 11308
7 ComboBox에서 Focus 가 올때 자동으로 펼쳐 내리기 박병일 2011.12.22 11472
6 CD-ROM 열고 닫기 박병일 2011.12.22 44783
5 Alt -F4 로 종료 못하게 하기 박병일 2011.12.22 10857
4 Hotfix 2 for C++Builder XE2, Delphi XE2 and RAD Studio XE2 is now available 박병일 2011.12.22 5864