본문 바로가기

카테고리 없음

젠킨스

Jenkins IOS 빌드

*주의사항

XCode Signing & Capabilities -> Automatically manage signing 체크 하지 말것. 수동으로 쓰다가 체크해서 사용하면 기존에 사용하던 Provisioning 만료 된다는 얘기가 있음

 

*XCode 빌드

 

[Profiles 생성]

1.Apple os 키체인 생성 > 맥 에서

2.Certificates 생성 > apple console 에서

3.Profiles 생성 > apple console 에서

>>각 과정은 이전 과정의 결과물을 필요로 하기에 순서대로 진행 되어야 한다.

 

[빌드프로세스]

1.UnityBuild 하면 XCodeProject 폴더가 생성 됨

2.XCodeProject 안에 프로젝트파일과 워크스페이스 파일이 있는데, 프로젝트는 프로젝트이고 워크스페이스는 솔루션 개념이다. 

3.XCode에서 워크스페이스 파일을 열어주고, 메뉴에서 Archive ( 보관소 ) 버튼 눌러주면 아카이브까지 완료 된다. ipa를 만들고 미리 셋팅한 앱센터로 올리는 기능이다.

 

*젠킨스 오류 추적 순서

빌드 실패시 실패한 빌드의 콘솔로그를 full 로그로 펼친 후, 스크롤을 최하단으로 내린다.

검색어로 Fail, error 으로 찾고, 첫째로 유니티 빌드오류 있는지 확인 후 있다면 보통은 #if def로 감싸져있는 부분이 빌드할때만 오류가 나게끔 되어있는 경우고 빌드가 성공하면 Archive 관련 오류가 있는지 확인 하면 된다.

아카이브 오류가 까다로운데, 잘 되다가 x코드나 ios 버전 업데이트 이슈가 있을 때 오류가 나서 버전을 변경 해 줘야 되는 경우도 있고, 1년마다 인증서관련 오류가 나는 경우도 있다.

그 외 유니티 버전을 올려줘야 하는 경우도 있고 다양한 케이스가 있는데, 추적을 위해서는 xcode 에서 솔루션 파일 열고 수동으로 아카이브 한 뒤 발생하는 오류 로그를 보고 추측하거나 검색 해 보면 된다.

 

 

<오류리스트>

 

*잘 되던 IOS 에서 갑자기 빌드에러

 

[증상]

유니티 수동빌드에서 빌드 자체가 계속 실패하고, 임포트가 오래걸리고 임포트 하던 도중 알 수 없는 에러가 발생.

 

[로그]

젠킨스 console output 및 유니티 에러로그

Fatal Error:

dataOffset !=file.GetPosition()

lldb: error:

빌드 후처리 역할을 하는 BuildProcessor.PostBuild() 를 찾을 수 없다고 나온다.

google plugin 관련 코드에서 문제가 있다고 나온다

에디터 버전 변경을 했는데 적용되지 않는다

 

[원인]

하드 용량 부족.

 

[해결]

무시했던 에러로그로 검색.

 

*유니티 구버전에서 batch모드로 빌드 할 때 빌드는 성공하지만 아키이브 할 때 에러가 발생

 

 

[XCode 빌드 인증서]

빌드에 필요한 인증서 관련 파일은 아래 2개다.

.moblieprovision

.cer 

 

외부업체 인증서를 사용하는 경우 .moblieprovision 을 전달 받고 .cer이나 .p12를 전달 받는데, cer는 mobileprovision 파일이 참조 하는 파일이므로 없으면 xcode signing이 안 된다. p12를 전달받는다면 비번을 같이 전달 받아야하고, p12를 더블클릭하고 비번을 입력 하면 키체인이 열린다. 

 

열린 키체인에서 내보내기 하면 .cer 파일로 내보낼수있다