Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

Unity Auto Build iOS

10.915 visualizaciones

Publicado el

GitHub: https://github.com/gsk120/UnityAutoBuild_iOS

유니티 빌드 자동화에 대한 설명을 다룬 ppt 입니다.


빌드 자동화에대해 고민이 많으신 분들을 위해 조금이나마 도움이 되고자 이렇게 자료를 공유합니다.

루비 Rakefile을 이용하여 Unity build -> Xcode 수정 -> Xcode build -> ipa 추출까지 한번에 진행하는 과정을 설명하였습니다.

Xcode 빌드가 안드로이드에 비해 상당히 느리기 때문에 수동으로 빌드하는 경우 신경써야 하는 일이 상당히 많습니다. 이 시간을 절약하여 개발에 좀더 투자할 수 있다면 개발자는 더욱 높은 퀄리티의 프로그램을 구현할 수 있을 것입니다. 하지만 빌드 자동화에 대한 정보가 많이 부족하고, 매뉴얼 형식의 자료가 별로 없어 구축하는데 꾀나 많은 조사와 분석이 필요합니다.

수동으로 빌드하며 고생하시는 분이나, 자동화 구축을 위해 고생하시는 분들께 같은 고민을 한 입장으로써, 부족하지만 도움이 되고자 이렇게 빌드 자동화 ppt를 공유합니다.

Publicado en: Móvil
  • If you want to download or read this book, copy link or url below in the New tab ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } .........................................................................................................................
       Responder 
    ¿Estás seguro?    No
    Tu mensaje aparecerá aquí
  • accessibility Books Library allowing access to top content, including thousands of title from favorite author, plus the ability to read or download a huge selection of books for your pc or smartphone within minutes.........ACCESS WEBSITE Over for All Ebooks ..... (Unlimited) ......................................................................................................................... Download FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } .........................................................................................................................
       Responder 
    ¿Estás seguro?    No
    Tu mensaje aparecerá aquí
  • If you want to download or read this book, Copy link or url below in the New tab ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... .........................................................................................................................
       Responder 
    ¿Estás seguro?    No
    Tu mensaje aparecerá aquí
  • If you want to download or read this book, Copy link or url below in the New tab ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... .........................................................................................................................
       Responder 
    ¿Estás seguro?    No
    Tu mensaje aparecerá aquí
  • If you want to download or read this book, Copy link or url below in the New tab ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... .........................................................................................................................
       Responder 
    ¿Estás seguro?    No
    Tu mensaje aparecerá aquí

Unity Auto Build iOS

  1. 1. iOS 빌드 자동화 수동 빌드는 그만 • 이름 : 이기석 • 작성일자 : 2014. 11. 18. • 이메일 : gsk123120@gmail.com • Github: https://github.com/gsk120/UnityAutoBuild_iOS
  2. 2. INDEX 1. 빌드 자동화 필요성 2. 구현 방법 3. 느낀점
  3. 3. Chapter 1 빌드 자동화 필요성 자동화 이전 - 반복되는 세팅 - 긴 시간의 빌드 타임 - 인간의 실수 자동화 이후 - 명령어 한 줄 - 개발자는 개발만 - 릴리즈 버전관리 무엇 보다도 사람이 편해야 한다!
  4. 4. Chapter 1 빌드 자동화 필요성 목표 단 하나의 명령어로 원하는 세팅의 빌드가 나오는 것!
  5. 5. Chapter 2 빌드 자동화 구현 개발 환경 Xcode 5.1.1 Unity 4.2.2f1 Ruby 2.0.0-p247 Mac OSX 10.9.5
  6. 6. Chapter 2 빌드 자동화 구현  Unity 3D iOS 빌드 과정 Unity Build • Unity를 빌드하여 Xcode 프로젝트를 생성한다. Xcode Setting • framework, library, app icon, provisioning 등 빌드하기 위한 설정 Xcode Build • Xcode 빌드를 통해 최종적으로 ipa 파일을 추출
  7. 7. Chapter 2 빌드 자동화 구현  빌드 목적 = Rakefile 로 build 스크립트를 만들어 rake만으로 ipa를 얻자.  빌드 흐름 Unity(C#) Rakefile BuildPlayer pbxproj plist executeMethod rake Unity xcodebuild (archive) Scheme recreate xcodebuild (export ipa) ipa
  8. 8. Chapter 2 빌드 자동화 구현 – 1. unity build 1. Unity Build #{UNITY} -batchmode -projectPath #{PROJECT_DIR} -executeMethod #{BUILD_METHOD} –quit Unity Xcode Project
  9. 9. Chapter 2 빌드 자동화 구현 – 1. unity build 1. Unity Build #{UNITY} -batchmode -projectPath #{PROJECT_DIR} -executeMethod #{BUILD_METHOD} –quit #{UNITY} 유니티 실행파일의 전체 경로 • ex) /Applications/Unity/Unity.app/Contents/MacOS/Unity • Rakefile의 상수로 정의해 두고 사용
  10. 10. Chapter 2 빌드 자동화 구현 – 1. unity build 1. Unity Build #{UNITY} -batchmode -projectPath #{PROJECT_DIR} -executeMethod #{BUILD_METHOD} –quit -batchmode 커맨드라인으로 유니티를 실행 • 명령어로 빌드하기 위한 필수 옵션
  11. 11. Chapter 2 빌드 자동화 구현 – 1. unity build 1. Unity Build #{UNITY} -batchmode -projectPath #{PROJECT_DIR} -executeMethod #{BUILD_METHOD} –quit -projectPath 빌드할 유니티 프로젝트의 경로 • 유니티 프로젝트의 절대경로를 루트 부터 입력 • ex) /Users/giseok/unity/test_proj
  12. 12. Chapter 2 빌드 자동화 구현 – 1. unity build 1. Unity Build #{UNITY} -batchmode -projectPath #{PROJECT_DIR} -executeMethod #{BUILD_METHOD} –quit -executeMethod 실행할 빌드 함수 • 빌드를 수행하는 static함수의 이름을 입력한다. (C#으로 이동) • ex) ExecuteMethods.IOSBuild
  13. 13. Chapter 2 빌드 자동화 구현 – 1. unity build 1. Unity Build #{UNITY} -batchmode -projectPath #{PROJECT_DIR} -executeMethod #{BUILD_METHOD} –quit -quit 함수 실행 후 종료 • 실행할 함수를 완료한 후 유니티를 종료하는 옵션이다.
  14. 14. Chapter 2 빌드 자동화 구현 – 1. unity build 1. Unity Build - excuteMethod Xcode 생성 ExecuteMethods Pbxproj 수정 Info.plist 수정
  15. 15. Chapter 2 빌드 자동화 구현 – 1. unity build 1. Unity Build - excuteMethod Xcode 생성 ExecuteMethods Pbxproj 수정 Unity에서 제공하는 BuildPipelie.BuildPlayer 함 수를 이용하여 빌드! Info.plist 수정
  16. 16. Chapter 2 빌드 자동화 구현 – 1. unity build 1. Unity Build - excuteMethod Xcode 생성 ExecuteMethods Pbxproj 수정 Unity에서 제공하는 BuildPipelie.BuildPlayer 함수를 이용하여 빌드! Info.plist 수정 BuildPipeline.BuildPlayer ( string[] levels, string locationPathName, BuildTarget target, BuildOptions options )
  17. 17. Chapter 2 빌드 자동화 구현 – 1. unity build 1. Unity Build - excuteMethod Xcode 생성 ExecuteMethods Pbxproj 수정 Info.plist 수정 Xcode 빌드에 필요한 framework, Code Signing, 필요한 파일 import
  18. 18. Chapter 2 빌드 자동화 구현 – 1. unity build 1. Unity Build - excuteMethod Xcode 생성 ExecuteMethods Pbxproj 수정 App 아이콘, URL Type 등 Info.plist 수정 Info.plist 수정
  19. 19. Chapter 2 빌드 자동화 구현 – 2. Xcode Setting 2. Xcode Setting (2가지)  pbxproj 수정 XocdeProjectModifier (ref) https://github.com/gforeman/XcodeProjectModifier  Info.plist 수정 PlistCS (ref) https://github.com/animetrics/PlistCS
  20. 20. Chapter 2 빌드 자동화 구현 – 2. Xcode Setting 2. Xcode Setting (pbxproj)  projmod 파일  빌드에 필요한 framework, library, header, file, folder를 적어둔 파일.  유니티 빌드 시 이 파일들을 모두 읽어 Xcode Project를 설정해 준다.  따로 폴더에 projmod파일들을 저장해두고, 빌드 시 projmod파일 전 부를 읽어 자동으로 설정한다.  좀더 상세한 내용은 Github의 XcodeProjectModifier 참고.
  21. 21. Chapter 2 빌드 자동화 구현 – 2. Xcode Setting 2. Xcode Setting (pbxproj)  projmod 파일 (key value) * group: Xcode 프로젝트 루트에 해당 이름의 그룹 폴더 생성 후 아래서 지정하는 라이브러리, 프레임워크, 파일 등을 저장 * libs: dylib와 같은 추가할 라이브러리 입력 * frameworks: 추가할 framework 입력 => iOS SDK로 부터 해당 프레임워크를 찾음 * headerpaths: 추가할 헤더파일의 경로를 입력 (실제 헤더파일은 files를 이용해 추가 즉, 경로만 설정해줌) * files: 추가할 파일의 리스트를 입력 (코드 및 icon 파일, iOS SDK 외 별도 framework와 .a 파일도 이곳에 추가) * folders: 입력한 경로에 있는 폴더를 추가 => 재귀적으로 하위 폴더 및 파일 모두 추가함 * excludes: 폴더를 추가할 때 추가하지 않아도 되는 파일의 확장자명을 적는 부분
  22. 22. Chapter 2 빌드 자동화 구현 – 2. Xcode Setting 2. Xcode Setting (pbxproj)  projmod 파일 – 작성 예시 iOS SDK에서 제공하는 framework 추가 { "frameworks": ["MessageUI.framework","StoreKit.framework","iAd.framework", "CoreData.framework“,"Security.framework","AdSupport.framework"] }
  23. 23. Chapter 2 빌드 자동화 구현 – 2. Xcode Setting 2. Xcode Setting (pbxproj)  projmod 파일 – 작성 예시 광고 SDK와 같은 framework 추가 { "files": ["/Users/giseok/framework/Partytrack.framework“, "/Users/giseok/framework/Adbrix.framework"] } => iOS의 framework와는 다르게 files 키워드로 추가한다.
  24. 24. Chapter 2 빌드 자동화 구현 – 2. Xcode Setting 2. Xcode Setting (pbxproj)  projmod 파일 – 작성 예시 Header 폴더에 필요 소스파일, 헤더파일 추가 (해당 폴더가 없다면 만듬) { "group": “Header", "headerpaths": ["Editor/iOS/GameCenter/**"], "files": ["Editor/iOS/GameCenter/GameCenterController.h", "Editor/iOS/GameCenter/GameCenterController.mm", "Editor/iOS/GameCenter/GameCenterManager.h", "Editor/iOS/GameCenter/GameCenterManager.m"], }
  25. 25. Chapter 2 빌드 자동화 구현 – 2. Xcode Setting 2. Xcode Setting (pbxproj)  projmod 파일 – 작성 예시 Libraries 폴더에 필요 앱 아이콘, .a 등 각종 필요 파일 추가 (해당 폴더가 없다면 만듬) { "group": "Libraries", "files": ["/Users/giseok/resources/Icon-60.png“, "/Users/giseok/resources/Icon-72.png“ "/Users/giseok/resources/libOMGGameBar.a"], }
  26. 26. Chapter 2 빌드 자동화 구현 – 2. Xcode Setting 2. Xcode Setting (pbxproj)  projmod 파일 – 작성 예시 리소스 폴더를 통째로 Xcode 프로젝트에 추가 { "folders": ["/Users/giseok/resources/API/“, "/Users/giseok/resources/Function/“ "/Users/giseok/resources/UI/"], “excludes“: ["^.*.meta$","^.*.mdown",“^.*.pdf$"] } - group 키워드를 사용하면 지정한 폴더 내부에 폴더를 추가한다. - excludes는 폴더를 추가할 때 필요 없는 파일을 제외시킨다.
  27. 27. Chapter 2 빌드 자동화 구현 – 2. Xcode Setting 2. Xcode Setting (pbxproj)  projmod 파일 – 작성 예시 라이브러리 파일 추가 { "libs": ["libsqlite3.dylib"] }
  28. 28. Chapter 2 빌드 자동화 구현 – 2. Xcode Setting 2. Xcode Setting (pbxproj)  projmod 파일 – 작성 예시 { "group": "Services", "libs": ["libsqlite3.dylib"], "frameworks": ["MessageUI.framework","StoreKit.framework"], "headerpaths": ["Editor/iOS/GameCenter/**"], "files": ["/Users/giseok/Documents/Partytrack/Partytrack.framework", “/Users/giseok/Documents/libOMGGameBar.a", "Editor/iOS/GameCenter/GameCenterController.h", "Editor/iOS/GameCenter/GameCenterController.mm"], "folders": ["iOS/Store/","iOS/GoogleAnalytics/"], "excludes": ["^.*.DS_Store$","^.*.meta$", "^.*.mdown^", "^.*.pdf$", "^.*.svn$"] } - 이렇게 한 파일에 모아도 되고 이전 예시처럼 기능별 관리를 해도 상관 없다.
  29. 29. Chapter 2 빌드 자동화 구현 – 2. Xcode Setting 2. Xcode Setting (pbxproj)  Code Signing  iOS 심사용 인증서와 개발 테스트용 인증서는 별개로 존재한다.  심사용 빌드는 ipa를 설치하여 실행해 볼 수가 없기에 빌드 자동화 시 개발용 빌드도 함께 빌드 해야한다.  overwriteBuildSetting 함수를 사용하여 빌드 타입에 맞는 프로비저닝 을 설정해 줄 수 있다.
  30. 30. Chapter 2 빌드 자동화 구현 – 2. Xcode Setting 2. Xcode Setting (pbxproj)  Code Signing – overwriteBuildSetting 함수  overwriteBuildSetting( // 함수 형태 string settingName, string newValue, string buildConfigName = “all” ) - settingName에 해당하는 설정을 newValue 값으로 변경 - buildConfigName으로 Release, Debug 개별 설정
  31. 31. Chapter 2 빌드 자동화 구현 – 2. Xcode Setting 2. Xcode Setting (pbxproj)  Code Signing – overwriteBuildSetting 함수  overwriteBuildSetting( // 함수 형태 string settingName, string newValue, string buildConfigName = “all” )  settingName => 설정해야하는 Code Sign => CODE_SIGN_NAME_IDENTITY[sdk=iphoneos*] CODE_SIGN_IDENTITY PROVISIONING_PROFILE
  32. 32. Chapter 2 빌드 자동화 구현 – 2. Xcode Setting 2. Xcode Setting (pbxproj)  Code Signing – overwriteBuildSetting 함수  overwriteBuildSetting( // 함수 형태 string settingName, string newValue, string buildConfigName = “all” )  newValue => 변경할 값 => CODE_SIGN과 관련된 설정은 인증서 이름으로 설정. => PROVISIONING_PROFILE은 프로비저닝의 UUID로 설정.
  33. 33. Chapter 2 빌드 자동화 구현 – 2. Xcode Setting 2. Xcode Setting (pbxproj)  Code Signing – overwriteBuildSetting 함수  overwriteBuildSetting( // 함수 형태 string settingName, string newValue, string buildConfigName = “all” )  newValue => 프로비저닝의 UUID는 프로비저닝 마다 고유. => 프로비저닝 등록 후 ~/Library/MobileDevice/Provisioning Profiles/ 위 디렉토리에서 확인 가능.
  34. 34. Chapter 2 빌드 자동화 구현 – 2. Xcode Setting 2. Xcode Setting (pbxproj)  Code Signing – overwriteBuildSetting 함수  overwriteBuildSetting( // 함수 형태 string settingName, string newValue, string buildConfigName = “all” )  buildConfigName => 해당 Code Sign을 적용할 빌드 타입. => Release | Debug | all
  35. 35. Chapter 2 빌드 자동화 구현 – 2. Xcode Setting 2. Xcode Setting (pbxproj)  실제 사용 예시
  36. 36. Chapter 2 빌드 자동화 구현 – 2. Xcode Setting 2. Xcode Setting (Info.plist)  빌드하고자 하는 설정에 맞게 Info.plist를 수정.  App icon naming을 설정하여 projmod 파일로 추가한 앱 아이콘이 자동 으로 등록 되도록 할 수 있다.  URL Type을 설정할 수 있다.  Github의 PlistCS를 사용하여 간편하게 수정.
  37. 37. Chapter 2 빌드 자동화 구현 – 2. Xcode Setting 2. Xcode Setting (Info.plist)  기존 Info.plist 읽기 var plist = (Dictionary<string, object>)Plist.readPlist(plistPath); => Unity 빌드로 생성된 Info.plist의 경로를 통해 내용을 읽어온다.
  38. 38. Chapter 2 빌드 자동화 구현 – 2. Xcode Setting 2. Xcode Setting (Info.plist)  Info.plist 변경 (데이터 추가) plist[“keyValue"] = new List<object>{ new Dictionary<string, object> { …… } }; => 추가하고 싶은 KeyValue를 이용하여 값을 새로 추가한다. => plist 의 <dic>은 Dictionary 타입<array>는 List 타입으로 관리.
  39. 39. Chapter 2 빌드 자동화 구현 – 2. Xcode Setting 2. Xcode Setting (Info.plist)  Info.plist 변경 (데이터 수정) var CFBundleIconFiles = (List<object>)plist["CFBundleIconFiles"]; CFBundleIconFiles.Add(PlistValue.APP_ICON_76); CFBundleIconFiles.Add(PlistValue.APP_ICON_120); CFBundleIconFiles.Add(PlistValue.APP_ICON_152); => 기존 속성을 변경할 때는 먼저 해당 데이터를 받아온 후 변경한다.
  40. 40. Chapter 2 빌드 자동화 구현 – 2. Xcode Setting 2. Xcode Setting (Info.plist)  Info.plist 변경 사항 저장 Plist.writeXml(plist, plistPath); => writeXml 함수를 이용하여 변경된 내용(plist)을 기존 경로(plistPath) 에 저장한다.
  41. 41. Chapter 2 빌드 자동화 구현 – 2. Xcode Setting 2. Xcode Setting (Info.plist)  실제 사용 예시
  42. 42. Chapter 2 빌드 자동화 구현 – 3. Xcode build 3. Xcode build  Command line을 이용하여 빌드  빌드의 2 Step - Xcode archive 생성 - ipa 실행 파일 추출 => 둘다 xcodebuild 명령어를 사용하여 수행.
  43. 43. Chapter 2 빌드 자동화 구현 – 3. Xcode build 3. Xcode build (xcarchive)  Command line xcodebuild -project #{XCODEPRJ_FPATH} -scheme Unity-iPhone archive -archivePath #{ARCHIVE_FPATH} Apple Submit / ipa 파일 추출을 위해 Xcode를 빌드하여 xcarchive를 생성
  44. 44. Chapter 2 빌드 자동화 구현 – 3. Xcode build 3. Xcode build (xcarchive)  Command line xcodebuild -project #{XCODEPRJ_FPATH} -scheme Unity-iPhone archive -archivePath #{ARCHIVE_FPATH} - project: 빌드할 xcode 프로젝트의 경로를 적어주는 옵션
  45. 45. Chapter 2 빌드 자동화 구현 – 3. Xcode build 3. Xcode build (xcarchive)  Command line xcodebuild -project #{XCODEPRJ_FPATH} -scheme Unity-iPhone archive -archivePath #{ARCHIVE_FPATH} - scheme: 빌드할 프로젝트 scheme 이름을 적어주는 옵션  unity build 후 scheme이 생성되기 전에 아카이브 빌드를 진행하여 에러가 발생하는 경우 존재  이 경우 강제로 scheme을 생성해 줘야함 prj = Xcodeproj::Project.open("#{XCODEPRJ_FPATH}") prj.recreate_user_schemes() prj.save()  Rakefile에 require ‘xcodeproj’를 추가해야함. (xcodeproj을 못찾는경우 sudo gem install xcodeproj를 통해 설치)  ref: http://stackoverflow.com/a/20941812
  46. 46. Chapter 2 빌드 자동화 구현 – 3. Xcode build 3. Xcode build (xcarchive)  Command line xcodebuild -project #{XCODEPRJ_FPATH} -scheme Unity-iPhone archive -archivePath #{ARCHIVE_FPATH} - archivePath: 생성한 xcarchive 파일을 저장할 위치를 적어주는 옵션 => organizer 메뉴를 사용하기 위해 웬만하면 기존 xcode xcarchive의 디폴트 위치를 적어주자.
  47. 47. Chapter 2 빌드 자동화 구현 – 3. Xcode build 3. Xcode build (ipa export)  Command line xcodebuild -exportArchive -archivePath #{ARCHIVE_FPATH} -exportPath #{IPA_FPATH} -exportFormat ipa -exportProvisioningProfile #{PROVISIONING_NAME} 생성한 xcarchive로 부터 ipa 파일을 추출하는 명령어
  48. 48. Chapter 2 빌드 자동화 구현 – 3. Xcode build 3. Xcode build (ipa export)  Command line xcodebuild -exportArchive -archivePath #{ARCHIVE_FPATH} -exportPath #{IPA_FPATH} -exportFormat ipa -exportProvisioningProfile #{PROVISIONING_NAME} - exportArchive: 아카이브를 추출하겠다는 옵션
  49. 49. Chapter 2 빌드 자동화 구현 – 3. Xcode build 3. Xcode build (ipa export)  Command line xcodebuild -exportArchive -archivePath #{ARCHIVE_FPATH} -exportPath #{IPA_FPATH} -exportFormat ipa -exportProvisioningProfile #{PROVISIONING_NAME} - archivePath: 추출하려는 아카이브의 경로를 입력하는 옵션 - 이전 xcodebuild로 빌드했던 xcarchive의 경로를 넣어주면 된다.
  50. 50. Chapter 2 빌드 자동화 구현 – 3. Xcode build 3. Xcode build (ipa export)  Command line xcodebuild -exportArchive -archivePath #{ARCHIVE_FPATH} -exportPath #{IPA_FPATH} -exportFormat ipa -exportProvisioningProfile #{PROVISIONING_NAME} - exportPath: 추출 결과인 ipa를 저장할 경로를 입력하는 옵션
  51. 51. 빌드 자동화 구현 – 3. Xcode build  Command line xcodebuild -exportArchive -archivePath #{ARCHIVE_FPATH} -exportPath #{IPA_FPATH} -exportFormat ipa -exportProvisioningProfile #{PROVISIONING_NAME} - exportFormat: 추출 결과의 format을 선택하는 옵션 ipa를 추출하기위해 ipa를 입력 Chapter 2 3. Xcode build (ipa export)
  52. 52. 빌드 자동화 구현 – 3. Xcode build  Command line xcodebuild -exportArchive -archivePath #{ARCHIVE_FPATH} -exportPath #{IPA_FPATH} -exportFormat ipa -exportProvisioningProfile #{PROVISIONING_NAME} - exportProvisioningProfile: ipa 추출 시 사용할 프로비저닝 이름 입력 pbxproj에서 설정했던 것과 달리 Provisioning Profile의 이름을 입력! Ex) UUID: xxxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxxxxx Code Sign: iPhone Distribution: Hello, Inc. Provisioning Profile: Enterprise (xcode 빌드 세팅에서 선택했을 때의 이름) Chapter 2 3. Xcode build (ipa export)
  53. 53. 빌드 자동화 구현 – 3. Xcode build  Command line xcodebuild -exportArchive -archivePath #{ARCHIVE_FPATH} -exportPath #{IPA_FPATH} -exportFormat ipa -exportProvisioningProfile #{PROVISIONING_NAME} - exportProvisioningProfile: ipa 추출 시 사용할 프로비저닝 이름 입력 pbxproj에서 설정했던 것과 달리 Provisioning Profile의 이름을 입력! Ex) UUID: xxxxxxxxx-xxxxx-xxxx-xxxx-xxxxxxxxxxxx Code Sign: iPhone Distribution: Hello, Inc. Provisioning Profile: Enterprise (xcode 빌드 세팅에서 선택했을 때의 이름) Chapter 2 3. Xcode build (ipa export)
  54. 54. Chapter 2 빌드 자동화 구현 – Rakefile 예시 Rakefile
  55. 55. Chapter 3 빌드 자동화를 공유 하며 인턴 기간 동안 약 4개월에 걸쳐 수동으로 빌드 했습니다. 서브미션 용과 테스트 용 빌드 등 3번의 빌드를 해야 했습니다. 기본 1시간 30분의 시간이 걸렸고, 어쩌다 빌드가 잘못되면 처음부터 다시 해야 하여 어떤 날은 하루 종일 빌드하거나, 야근 까지 해가며 빌드를 하는 경우도 있었습니다. 그러던 중 선임 개발자 분이 빌드 자동화를 하는 것이 어떻겠냐는 제안을 하셨고, 더 이상 이 상황을 지속시키는 것은 아니다 싶어 직접 해보겠다고 지원했습니다. 인터넷 검색도 해보고, 혼자 머리를 쥐어짜 보기도 하며, 힘들 때는 선임 개발자께 물어 빌드 자동화를 완성할 수 있었습니다. 이 과정에서 가장 힘들었던 것이 매뉴 얼의 부재였습니다. 여기저기 단편화된 정보는 많은데, 일련의 과정으로 명확하게 정리된 자료는 부족했기 때문입니다. 빌드 자동화를 완성하고 저처럼 수동 빌드로 고생한 분이나, 빌드 자동화 자료 조 사로 고생하고 계신 분들의 부담들 조금이나마 덜어드리고자, 이렇게 ppt로 매뉴얼 을 만들었습니다. 부족한 점이 많지만, 조금이나마 도움이 되길 바랍니다. 참고 Github) https://github.com/gsk120/UnityAutoBuild_iOS
  56. 56. THANK YOU ppt 출처 http://insahara.tistory.com

×