SlideShare a Scribd company logo
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 파일 생성 완료.

More Related Content

PDF
Jenkins와 Gitlab으로 쉽고 빠르게 구축하는 협업시스템
PDF
Docker, but what it is?
PPTX
Mastering Security with GeoServer and GeoFence - FOSS4G EU 2017
PPT
Drive into calico architecture
PDF
[NDC 2016] 유니티, iOS에서 LINQ 사용하기
PPTX
[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)
PDF
[NHN_NEXT] 게임 휴먼 프로젝트 CI + GitHub 세팅 방법
PDF
송창규, unity build로 빌드타임 반토막내기, NDC2010
Jenkins와 Gitlab으로 쉽고 빠르게 구축하는 협업시스템
Docker, but what it is?
Mastering Security with GeoServer and GeoFence - FOSS4G EU 2017
Drive into calico architecture
[NDC 2016] 유니티, iOS에서 LINQ 사용하기
[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)
[NHN_NEXT] 게임 휴먼 프로젝트 CI + GitHub 세팅 방법
송창규, unity build로 빌드타임 반토막내기, NDC2010

Viewers also liked (14)

PPTX
Jenkins
PPTX
유니티와 안드로이드의 연동
PDF
Architectural Library
PPTX
안드로이드를 위한 Gradle 맛들이기
PPTX
유니티 Rpg게임배경 스타트업 첫번째자료
PPTX
Unity Valley
PDF
Make a shooting game using unity
PPTX
디자이너를 위한 NGUI의 이해
PDF
젠킨스 설치 및 설정
PDF
Unity 시작하기
PDF
초급 개발자 탈출
PDF
게임 프로그래밍 기초 공부법
PDF
메이븐 기본 이해
PDF
클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다
Jenkins
유니티와 안드로이드의 연동
Architectural Library
안드로이드를 위한 Gradle 맛들이기
유니티 Rpg게임배경 스타트업 첫번째자료
Unity Valley
Make a shooting game using unity
디자이너를 위한 NGUI의 이해
젠킨스 설치 및 설정
Unity 시작하기
초급 개발자 탈출
게임 프로그래밍 기초 공부법
메이븐 기본 이해
클라우드 기반 Unity 게임 서버 구축, 60분이면 충분하다
Ad

Similar to Jenkins with Unity3d & Android (20)

PDF
NDC 2015 삼시세끼 빌드만들기
PDF
MSBuild + Git + Jenkins
PPTX
오래된 프로젝트에 Jenkins 적용해보기
PPTX
CI in the Mobile World (한글번역)
PDF
Unity ads integration guide_201504
PDF
자바 웹프로젝트 개발환경 셋팅
PDF
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
PPTX
120513 unity3 d_start_skyseer
PDF
ant로 안드로이드 앱을 자동으로 빌드하자
PDF
[오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211
PPTX
대규모 프로젝트 개발이야기 - 이승헌, 유나이트 코리아 2014
PDF
지속적인 통합
PPTX
Travis-ci를 이용한 CI/CD와 도커를 이용한 Jenkins for Android 구성하기
PPTX
Unity3D 한국 최초 기술 세미나
PPTX
Jenkins를 활용한 javascript 개발
PDF
DevOps - CI/CD 알아보기
PPTX
(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍
PDF
이호민 - 우분투 환경에서의 임베디드 개발환경 구축 및 어플리케이션 개발 (2010Y06M24D)
PDF
유니티 - 게임 데이터, PlayerPref, 빌드하기, Web 호스팅하기
NDC 2015 삼시세끼 빌드만들기
MSBuild + Git + Jenkins
오래된 프로젝트에 Jenkins 적용해보기
CI in the Mobile World (한글번역)
Unity ads integration guide_201504
자바 웹프로젝트 개발환경 셋팅
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
120513 unity3 d_start_skyseer
ant로 안드로이드 앱을 자동으로 빌드하자
[오픈소스컨설팅]애플리케이션 빌드 및_배포가이드_v1.0_20140211
대규모 프로젝트 개발이야기 - 이승헌, 유나이트 코리아 2014
지속적인 통합
Travis-ci를 이용한 CI/CD와 도커를 이용한 Jenkins for Android 구성하기
Unity3D 한국 최초 기술 세미나
Jenkins를 활용한 javascript 개발
DevOps - CI/CD 알아보기
(게임개발을위한) printf("Hello World!"); 그 이상의 콘솔 프로그래밍
이호민 - 우분투 환경에서의 임베디드 개발환경 구축 및 어플리케이션 개발 (2010Y06M24D)
유니티 - 게임 데이터, PlayerPref, 빌드하기, Web 호스팅하기
Ad

Jenkins with Unity3d & Android

  • 1. Jenkins with Unity3D & Android OSX 환경에서 Jenkins를 이용한 Unity3D와 Native Code의 연동
  • 2. 목표 설정 ▪ Unity3D와 Jenkins를 이용해서 자동 빌드 시스템을 구축하자. ▪ Unity3D에서 export 되는 프로젝트도 Jenkins와 연동하자. ▪ AndroidManifest.xml에 기입될 versionName 책정도 Jenkins와 연동하자 . ▪ 할 수 있는 모든걸 다 자동화 하자.!
  • 3. Jenkins 설치 ▪ https://Jenkins-ci.org 에서 Mac OSX 버전 다운로드 ▪ 기본 생성 되는 ‘Jenkins’ 계정은 사용하지 말자 ▪ Unity3D 빌드 연동시 WindowServer 시스템에 접근 할 수 없는 문제가 발생하여 Hang이 걸려버린다. ▪ 해당 문제를 해결하기 위한 방법이 여러 가지 있으나 여기선 ‘Jenkins’ 계정을 사용하지 않는 방법으로 진행하자. ▪ 설치 과정 중 오른쪽 이미지를 참고로 Customize 메뉴에서 Start at boot as “Jenkins”를 해제하자.
  • 4. 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 으로 용도는 이따가 공개…
  • 5. Unity3D Plugin 설정 ▪ 빌드 머신에 설치된 Unity3D에 대해 Jenkins에서 사용될 별칭을 지정하자. ▪ 여러 버전의 Unity3D를 설치해서 사용할 수 있다. ▪ ‘Jenkins 관리’ > ‘시스템 설정‘ 에서 설정 가능.
  • 6. Jenkins Workspace 구조 ▪ Workspace 구조를 아래와 같이 설정 (어디까지나 저희 기준.) build - 빌드 결과물(apk) 파일 생성 위치 builder - ant 기반의 빌드 설정 파일 src - 실제 project 소스 versioning - application 버전 갱신 스크립트
  • 7. Jenkins Workspace 구조 ▪ src/native_android ▪ 연동 대상이 되는 Android Library 및 외부 프로젝트 위치. ▪ Unity3D에서 export 되는 Project 또한 위치함. ▪ src/temp_android ▪ Unity3D 빌드 진행시 생성되는 임시 디렉토리. ▪ Asset Data 생성 후 src/native_android/wtrio로 복사. ▪ src/unity ▪ 실제 Unity3D 기반 코드 위치.
  • 8. 여기까지 짚고 넘어가자. ▪ Unity3D로 Export 한 Project를 기반으로 기본적으로 추가해야 되는 코드(Google Billing Service 등)를 추가한 후 해당 Project를 svn에 등록 ▪ 여기선 native_android/wtrio ▪ 최초 한번만 등록하면 된다. 이후는 Unity3D Export되는 파일들을 그대로 덮어쓰면 된다. ▪ Environment Injector Plugin은 어따 쓰지? ▪ Unity3D Export 대상 Path를 지정할 때 사용.
  • 9. 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를 만들어서 사용
  • 10. Android 기본 설정 ▪ 연동 대상 Android Project ▪ appcompat_v7 ▪ google-play-service_lib ▪ wtrio ▪ 실제 제품 ▪ Unity3D에서 Export된 결과물
  • 11. 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
  • 12. Jenkins Item 생성 ▪ Jenkins 좌측 메뉴의 ‘새로운 Item’ 선택 ▪ Item 이름에 대상 Project 이름 입력 ▪ Freestyle project 선택
  • 13. Jenkins 설정 ▪ Build Paramater 설정 ▪ Application 버전 정보를 입력 받아 적용하기 위해 사용 ▪ 변수 이름은 ‘VERSION’ 으로 설정 ▪ 설정된 변수는 환경 변수로 취급됨 환경변수 설정 화면 설정 후 생성된 메뉴와 사용 화면
  • 14. Jenkins 설정 ▪ SubVersion 설정 ▪ 관련된 Project 정보 등록
  • 15. Jenkins 설정 ▪ Environment Injector ▪ Unity3D 빌드 후 Export 대상 경로를 내부적으로 지정하기 위해 사용
  • 16. 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 까지 처리
  • 17. Jenkins Build Step 설정 ▪ Unity3D Version 정보 파일 생성 ▪ UNITY_EXPORT_PATH 환경 변 수 설정
  • 18. Jenkins Build Step 설정 ▪ Unity3D 빌드 스크립트 호출 ▪ Android Versioning ▪ Android Build
  • 19. Jenkins 최종 결과 ▪ APK 파일 생성 완료.