View
211
Download
11
Category
Preview:
Citation preview
Jenkins with Unity3D & Android
OSX 환경에서 Jenkins를 이용한 Unity3D와 Native Code의 연동
목표설정
▪ Unity3D와 Jenkins를이용해서자동빌드시스템을구축하자.
▪ Unity3D에서 export되는프로젝트도 Jenkins와연동하자.
▪ AndroidManifest.xml에 기입될 versionName책정도 Jenkins와연동하자 .
▪ 할수있는모든걸다자동화하자.!
Jenkins 설치
▪ https://Jenkins-ci.org 에서 Mac OSX 버전 다운로드
▪ 기본 생성 되는 ‘Jenkins’ 계정은 사용하지 말자
▪ Unity3D 빌드 연동시 WindowServer 시스템에 접근할 수 없는 문제가 발생하여 Hang이 걸려버린다.
▪ 해당 문제를 해결하기 위한 방법이 여러 가지 있으나여기선 ‘Jenkins’ 계정을 사용하지 않는 방법으로 진행하자.
▪ 설치 과정 중 오른쪽 이미지를 참고로 Customize 메뉴에서Start at boot as “Jenkins”를 해제하자.
Jenkins Plugin 설치
▪ 우리를도와줄 Plugin을 설치하자
▪ Unity3d Builder
▪ https://wiki.jenkins-ci.org/display/JENKINS/Unity3dBuilder+Plugin
▪ Subversion
▪ https://wiki.jenkins-ci.org/display/JENKINS/Subversion+Plugin
▪ Environment Injector
▪ https://wiki.jenkins-ci.org/display/JENKINS/EnvInject+Plugin
▪ 지정된환경변수에값을설정해주는 Plugin 으로용도는이따가공개…
Unity3D Plugin 설정
▪ 빌드머신에설치된 Unity3D에 대해 Jenkins에서사용될별칭을지정하자.
▪ 여러버전의 Unity3D를설치해서사용할수있다.
▪ ‘Jenkins 관리’ > ‘시스템설정‘ 에서설정가능.
Jenkins Workspace 구조
▪ Workspace 구조를아래와같이설정 (어디까지나저희기준.)
build -빌드결과물(apk) 파일생성위치
builder- ant 기반의빌드설정파일
src
-실제 project 소스
versioning
- application 버전갱신스크립트
Jenkins Workspace 구조
▪ src/native_android
▪ 연동대상이되는 Android Library 및외부프로젝트위치.
▪ Unity3D에서 export 되는 Project 또한위치함.
▪ src/temp_android
▪ Unity3D 빌드진행시생성되는임시디렉토리.
▪ Asset Data 생성후 src/native_android/wtrio로복사.
▪ src/unity
▪ 실제 Unity3D 기반코드위치.
여기까지짚고넘어가자.
▪ Unity3D로 Export 한 Project를기반으로기본적으로추가해야되는코드(Google Billing Service 등)를추가한후해당 Project를 svn에등록
▪ 여기선 native_android/wtrio
▪ 최초한번만등록하면된다. 이후는 Unity3D Export되는파일들을그대로덮어쓰면된다.
▪ Environment Injector Plugin은어따쓰지?
▪ Unity3D Export 대상 Path를지정할때사용.
Android 기본설정
▪ Unity3D에서 Export된 Project와 Native Code 연동이목표
▪ 기본설치대상
▪ ANT
▪ Android SDK
▪ Unity3D에서 Android Platform으로빌드하기위한빌드스크립트준비
▪ http://docs.unity3d.com/ScriptReference/BuildPipeline.html
▪ http://docs.unity3d.com/Manual/CommandLineArguments.html
▪ 우린 ergBuild.cs에 BuildClient method를만들어서사용
Android 기본설정
▪ 연동대상 Android Project
▪ appcompat_v7
▪ google-play-service_lib
▪ wtrio
▪ 실제제품
▪ Unity3D에서 Export된결과물
Android 기본설정
▪ Library 대상 Project 빌드설정파일생성
▪ appcompat_v7, google-play-services_lib각각의위치에서아래명령어실행
▪ android update lib-project –t [API LEVEL] –p .
▪ build.xml, project.properties 생성됨
▪ 생성된 project.properties를열어아래의구문추가
▪ android.library = true
Jenkins Item 생성
▪ Jenkins 좌측메뉴의 ‘새로운 Item’ 선택
▪ Item 이름에대상 Project 이름입력
▪ Freestyle project 선택
Jenkins 설정
▪ Build Paramater설정
▪ Application 버전정보를입력받아적용하기위해사용
▪ 변수이름은 ‘VERSION’ 으로설정
▪ 설정된변수는환경변수로취급됨
환경변수설정화면 설정후생성된메뉴와사용화면
Jenkins 설정
▪ SubVersion 설정
▪ 관련된 Project 정보등록
Jenkins 설정
▪ Environment Injector
▪ Unity3D 빌드후 Export 대상경로를내부적으로지정하기위해사용
Jenkins Build Step 설정
▪ 5단계로 Build Step이 구성됨
1. Unity3D Version 정보파일생성
▪ Unity3D에서사용할 Version.cs생성
▪ AndroidManifest.xml에서사용될 version.xml 생성
2. UNITY_EXPORT_PATH 환경변수설정
3. Unity3D 빌드스크립트호출
4. Android Application에서사용될 version.xml 생성및 AndroidManifest.xml의versionName필드갱신
5. Android 빌드실행
▪ 내부적으로 signing 까지처리
Jenkins Build Step 설정
▪ Unity3D Version 정보파일생성
▪ UNITY_EXPORT_PATH 환경변수설정
Jenkins Build Step 설정
▪ Unity3D 빌드스크립트호출
▪ Android Versioning
▪ Android Build
Jenkins 최종결과
▪ APK 파일생성완료.
Recommended