본문 바로가기
아카이브/Cocos2d-x

[Cocos2d-x] Mac 개발환경 설정하기

by Mildwhale 2012. 9. 9.

1. 시작하기

지금부터 Mac에서 Cocos2d-x 개발 환경을 구축 해보려 합니다.

사용자의 Mac에는 Eclipse(Android환경)와 Xcode가 설치 되어있어야하므로 설치가 안돼있다면 설치 후 다시 오시길 바랍니다.


2. 라이브러리 준비하기

Cocos2d-x 설정을 위해서는 Cocos2d-x와 안드로이드 NDK 라이브러리가 필요합니다.

먼저 Cocos2d-x엔진을 다운로드 받기 위해 해당 사이트로 이동합니다.

Cocos2d-x 사이트로 이동하기

Download 메뉴로 들어간 뒤 가장위에 있는 최신 버전을 다운로드 받습니다.

귀찮으신분은 아래 링크를 눌러주세요.

2012년 8월 30일자 다운로드 (2.0.2버전)


다음으로 안드로이드 NDK를 받기 위해 해당 사이트로 이동합니다.

안드로이드 NDK 사이트로 이동하기

Mac OS X용 최신 버전을 다운로드 받습니다. 

역시나 귀찮으신분은 아래 링크를 눌러주세요.

android-ndk-r8b-darwin-x86 다운로드


다음으로 다운로드 받은 라이브러리들을 적절한 위치에 압축을 풀어줍니다.

여기서 저는 Document 폴더에 압축을 풀겠습니다.


3-1 라이브러리 설정하기 (PATH)

우측 상단에 있는 Spotlight를 클릭 후 터미널을 검색 후 실행합니다.

"응용 프로그램 -> 유틸리티" 에서도 찾을 수 있습니다.

아래와 같은 검은 콘솔창에서 open .bash_profile 또는 vi에디터가 편하신분은 vi .bash_profile 명령어를 실행합니다.

명령어를 실행하면 텍스트 에디터 또는 vi 편집기가 실행되며, .bash_profile의 내용이 보여집니다.

이곳에 아래와 같은 문장을 추가한 뒤 자신의 경로에 맞게 적절히 수정해줍니다.

export ANDROID_NDK_ROOT=/Users/mildwhale/Documents/android-ndk-r8b

export ANDROID_SDK_ROOT=/Users/mildwhale/eclipse/android-sdks

export COCOS2DX_ROOT=/Users/mildwhale/Documents/cocos2d-2.0-x-2.0.2

export NDK_ROOT=/Users/mildwhale/Documents/android-ndk-r8b

export COCOS2DX_PROJECT_DIR=/Users/mildwhale/Desktop/Cocos2dxProj

export PATH=$PATH:$ANDROID_NDK_ROOT

export PATH=/opt/local/bin:/opt/local/sbin:$PATH


저장 후 profile을 적용하기 위해 콘솔에 source .bash_profile 명령어를 입력 후 실행합니다.


3-2 라이브러리 설정하기 (iOS)

PATH 설정이 끝났으면 iOS환경 구축을 위해 Xcode 템플릿을 설치할 차례입니다. 

콘솔에서 Cocos2d-x 엔진 폴더로 이동 합니다. 

이동 후 sudo ./install-templates-xcode.sh 명령어를 실행후 Root 비밀번호를 입력합니다.

(sudo는 Root권한으로 작업을 수행하기 위한 명령어입니다. 따라서 Root 비밀번호를 요구합니다.)

아래와 같은 화면이 보이면 템플릿이 정상적으로 설치 된 상태입니다.


정상적으로 설치가 됐다면 Xcode에서 프로젝트 생성 시 다음과 같이 Cocos2d-x 프로젝트를 생성할 수 있게됩니다.


3-3 라이브러리 설정하기 (Android)

기본적으로 Cocos2d-x에서 안드로이드 프로젝트를 생성하면 Cocos2d-x엔진 폴더에 생성이 되고,  빌드 셋팅도 엔진 폴더 기준으로 셋팅됩니다. 이렇게되면 iOS 프로젝트와 통합하고, 관리할 때 매우 불편해집니다. 따라서 자신이 원하는 장소에 프로젝트를 생성하고, 빌드할 수 있는 환경을 설정해보겠습니다.

- 프로젝트 생성 폴더 경로 설정

.bash_profile을 수정하여 PATH 를 설정할 때 "COCOS2DX_PROJECT_DIR" 라는 PATH 도 설정해주었다. 이 경로는 프로젝트가 생성되는 폴더이므로 profile을 수정하여 자신이 원하는 경로로 바꾸어도 무방합니다.

먼저 Finder에서 Cocos2d-x엔진 폴더에 있는 create-android-project.sh를 실행한다. 실행하게되면 Xcode 또는 텍스트 편집기가 실행되어 내용을 볼 수 있습니다.

수정 전

108라인의 'pwd'"$COCOS2DX_PROJECT_DIR"로 수정한 뒤 저장합니다

수정 후

다음은 안드로이드 프로젝트 생성 시 기본 템플릿 데이터가 복사되는 경로를 수정해주어야 합니다. 

이제 Cocos2d-x엔진 폴더의 Template/android 폴더로 이동한 뒤, copy_files.sh를 실행합니다.

수정 전

7라인의 APP_DIR에 있는 $COCOS2DX_ROOT를 "$COCOS2DX_PROJECT_DIR"로 수정합니다.

수정 후


프로젝트가 생성되는 경로를 바꾸는 작업이 끝났습니다. 이제 프로젝트를 빌드하기 위한 설정을 수행 할 차례입니다.

(.bash_profile에 설정한 경로만 수정해주면 자신이 원하는 위치에 프로젝트를 생성할 수 있습니다.)


- 프로젝트 빌드 설정

위에서 수행한 '프로젝트 생성 경로 설정' 이 끝나면 빌드 경로도 수정해주어야합니다. 위에서도 언급했듯이 Cocos2d-x로 생성한 안드로이드 프로젝트의 기본 경로는 Cocos2d-x엔진 폴더입니다. 따라서 이 경로도 사용자가 설정한 경로로 수정해주어야 빌드를 정상적으로 진행할 수 있습니다.

Cocos2d-x엔진 폴더/Template/Android로 이동하여 build_native.sh 파일을 실행하여 아래와 같은 라인을 찾습니다.

수정 전

우리가 수정해야할 곳은 2곳이 있습니다. 하나는 40라인에 있는 COCOS2DX_ROOT 경로, 다음은 57라인에 있는 복사 될 원본 리소스의 위치입니다. 위 설정은 Cocos2d-x의 기본 설정입니다. 하지만 우리는 프로젝트의 위치를 임의의 위치로 설정했기 때문에 COCOS2DX_ROOT의 경로를 DIR/../..으로 하면 빌드를 위한 엔진의 경로를 찾지 못합니다. 따라서 경로를 PATH에서 설정했던 "$COCOS2DX_ROOT"로 수정해줍니다. 

그리고 다음 단락에서 얘기하겠지만 iOS와 Android 프로젝트를 한 폴더에서 통합 관리 할 예정이므로 리소스가 복사될 위치도 미리 수정해주는 것이 좋습니다. 프로젝트 폴더 구조는 아래 스크린샷과 같은 구조로 구성할 예정입니다.

Test라는 프로젝트가 iOS버전과 Android버전으로 분할되어있음.


Cocos2d-x 프로젝트는 모두 Xcode에서 개발 & 관리 될 예정이므로 Resources폴더와 Classes폴더는 모두 iOS폴더에 포함 될 예정입니다. 따라서 Resources 경로를 "$APP_ROOT"/iOS/$APPNAME/Resources/* 으로 수정해줍니다.

수정 후

4. 프로젝트 생성하기

Xcode의 경우 Cocos2d-x 템플릿이 이미 설치되어 있기 때문에 그냥 프로젝트를 생성하면 됩니다. 하지만 안드로이드의 경우 콘솔에서 프로젝트를 생성해야 합니다. 이 때 iOS와 안드로이드 프로젝트의 이름은 동일하게 생성해야 하는 것에 주의하시기 바랍니다.


- Xcode 프로젝트 생성

새 프로젝트를 생성할 때 Cocos2d-x 프로젝트로 생성을 합니다. 프로젝트를 생성 후 실행을 하면 시뮬레이터에서 아래와 같은 화면을 보실 수 있습니다.


- Android 프로젝트 생성

안드로이드 프로젝트는 콘솔을 이용하여 미리 작성되어있는 스크립트로 프로젝트를 생성하게 됩니다. 먼저 터미널을 실행하고, Cocos2d-x엔진 폴더로 이동합니다.

라이브러리 설정할 때 실행했던 create-android-project.sh 파일을 ./create-android-project.sh 명령어로 실행합니다.



아래와 같이 원하는 패키지 이름을 입력해줍니다.


패키지 이름을 입력하면 아래와 같이 설치되어있는 Android-SDK를 확인할 수 있습니다. 해당하는 버전의 id를 입력 하시면 됩니다. 저는 2.3.3버전의 아이디가 7이기 때문에 7을 입력하였습니다. 타겟을 설정하면 프로젝트 이름을 입력해야합니다. 위에서도 언급했듯이 Xcode용 프로젝트와 이름이 동일해야합니다. 저는 HelloWorld로 진행하겠습니다.


프로젝트 이름을 입력하면 자동으로 프로젝트가 생성이 되고, 아래와 같은 화면을 보실 수 있습니다.

5. 프로젝트 통합 빌드하기

드디어 iOS와 Android버전 프로젝트를 모두 생성하였습니다. 이제 생성한 두 프로젝트를 통합하여 한 곳에서 관리할 수 있는 방법에 대해 알아보겠습니다.

- 먼저 생성된 Android 프로젝트 폴더로 이동 후, iOS라는 폴더를 생성합니다.

- 그리고 그 폴더에 Xcode에서 생성한 iOS용 프로젝트 폴더를 아래 사진과 같이 iOS폴더로 이동시킵니다.

- 안드로이드 프로젝트에 있는 Classes와 Resources 폴더를 삭제합니다. (아래 사진은 삭제 전)


삭제가 끝나면 폴더 구조 작업이 끝난 것 입니다. 이제 마지막으로 Android의 빌드 설정만 해주면 통합 빌드환경 구성이 완료됩니다. proj.android/jni폴더로 이동하여 Android.mk 파일을 실행합니다. 

수정 전

안드로이드 빌드시 사용되는 Classes폴더와 Resources폴더의 위치가 iOS 프로젝트 폴더에 있기 때문에 아래와 같이 경로를 수정해줍니다. 총 2가지를 수정해야합니다. LOCAL_SRC_FILES에 있는 경로와 LOCAL_C_INCLUDES 입니다.

모든 설정이 끝났습니다. 이제 콘솔에서 proj.android 폴더로 이동합니다.

그리고 ./build_native.sh 를 실행하여 빌드를 수행해봅니다. 여러 라이브러리를 빌드하는 로그가 지나가고, 빌드에 성공하면 아래와 같은 화면을 보실 수 있습니다.


빌드에 성공했으면 이클립스에서 새로운 프로젝트를 생성하여 테스트를 해볼 차례입니다.

새 프로젝트를 생성하는데, 'Android Project from Existing Code' 로 생성합니다.


Browse로 프로젝트가 있는 폴더를 선택하면 자동으로 프로젝트에 대한 설정이 끝납니다. Finish를 눌러 마무리합니다.


HelloWorld.java 파일만 외로이 홀로 있는 프로젝트가 생성이 됩니다. 이제 실행하면 아까 Xcode에서 실행했던 화면과 동일한 결과를 보실 수 있습니다.


6. 마무리

드디어 모든 설정이 끝났습니다. 이 후의 작업은 모두 Xcode에서 진행하고, Android 버전은 콘솔에서 빌드 후 이클립스에서 실행하시면 됩니다. 수고하셨습니다.

(Android는 빌드 후 프로젝트에서 Refresh를 해주어야합니다.)