먹고 기도하고 코딩하라

사내 배포를 하며 배운 3가지 팁 본문

앱/Swift

사내 배포를 하며 배운 3가지 팁

사과먹는사람 2023. 10. 20. 21:17
728x90
728x90

 

큰 업데이트 전에는 사내 배포 및 외부 고객센터에 앱 배포가 필요한 경우가 있다.

iOS의 경우, 앱스토어에 등록되지 않은 개발용 앱인 경우 프로파일에 등록된 기기들만 앱을 설치할 수 있다.

사무실 상근 임직원분들 외에도 직접 만날 수 없는 고객센터 근무자 분들의 폰을 등록해야 하는 경우가 발생한다.

또한 폰을 등록한 후에도 프로비저닝 업데이트 후 사내 배포를 위해 따로 빌드가 필요하다.

이번 주는 사내 배포용 앱을 빌드하고, 외부 고객센터 기기 등록하는 작업을 하다가 난항을 겪었다. 사내 컨플에 공유한 문서인데 좀 더 일반적으로 수정해서 블로그에도 올린다.

오라.. 달콤한 프로비저닝 업데이트여.. 🤯

 

사무실 외부의 기기 등록

프로파일에 등록되지 않은 iOS 기기들을 등록하는 일은 내가 도맡아 했는데, 주로 새로 들어온 테스트용 기기 나 타 팀 기기를 등록했다. 즉 사무실에 있는 폰을 직접 받아서 xcode에 연결한 후 등록했다.

이 방법의 단점은 개발용 폰으로 사용하지 않아도 개발자 모드를 켜야 페어링돼서 UDID를 확인할 수 있다는 점이다. 또한 UDID를 확인하는 동안은 폰이 잡혀 있으므로 불편할 수 있다.

기기 소유자가 직접 UDID를 확인하는 방법이 있는 건 이번에 새로 알게 됐다.

 

[iOS] iPhone의 UDID 를 확인하는 방법..

근래에 오래도록 Testflight 를 주로 이용하다 보니..

medium.com

이 글이 제일 설명이 잘 되어 있어서, 1번째 방법을 그대로 따르면 폰을 직접 받지 않고도 UDID를 얻을 수 있다.

요약하자면 다음과 같다.

  • https://udid.tech 접속
  • Get my UDID > Download
  • 설정 > 일반 > 프로파일 // 혹은 일반 > VPN 및 기기 관리
  • 다운로드된 프로파일 선택 > 설치, 허용
  • 자동으로 나타난 브라우저의 UUID 복사

일부 폰(내 경우 iOS 15.7 테스트폰)에서는 일반 > 프로파일 탭 대신 일반 > VPN 및 기기 관리 탭에서 프로파일을 확인할 수 있다.

 

사내 배포를 위한 프로비저닝 업데이트

일반적인 QA용 앱(debug)과 달리 release.ipa를 사용해야 하는 경우, adhoc 프로파일을 업데이트해야 했다. release 버전은 dev 프로파일이 아니라 adhoc 프로파일을 보고 있기 때문이다.

따라서 이 경우에는 다음과 같이 실행하면 된다.

  1. 기기 등록
  2. dev, adhoc 프로파일에 해당 기기를 모두 추가, 업데이트된 프로파일을 다운로드
  3. 다운로드받은 프로파일들을 xcode에서 적용(더블 클릭) 후 push
  4. 젠킨스에서 BUILD_PRODUCTION, PROVISIONING_UPDATE 옵션을 선택하고 빌드

adhoc 프로파일에 등록되지 않은 기기는 무결성 이슈로 앱을 다운로드할 수 없다.

간혹 가다 OTA의 앱을 다운로드받으려고 할 때 “무결성을 확인할 수 없기 때문에 이 앱을 설치할 수 없습니다.” 에러가 날 때가 있는데 빌드된 앱의 프로파일에 해당 기기가 등록이 안 되어 있기 때문인 경우가 많다. 물론 프로젝트, 빌드 세팅의 Product Name이 다르거나 빌드 버전 등이 다른 것도 원인이 될 수 있으므로 꼼꼼히 점검해야 한다.

사실 MDM을 통해 앱을 설치하는 경우가 가장 좋다고 하지만 회사마다 사정이 다르다. 기업용 앱을 따로 배포하지 않는 경우에는 위와 같은 방법을 쓰면 된다.

지금까지는 프로파일들 간 용도를 사실 잘 구분하지 못했는데 이 기회에 adhoc 프로파일의 용도를 잘 알게 된 것 같다.

 

(번외) 나의 맥 내 프로비저닝 초기화하기

작업하는 맥의 xcode에 프로비저닝을 적용하려는데, 다음과 같은 에러 메시지와 함께 적용에 실패할 수 있다.

Failed to install one or more provisioning profiles on the device.

이 경우 다음 절차를 따라서 해결한다.

  1. 프로비저닝을 저장하는 디렉터리로 이동, 디렉터리 내 모든 프로비저닝 파일들을 삭제
 cd /Users/{본인 user명}/Library/MobileDevice/Provisioning\\ Profiles/
 open .
  1. xcode에 연결된 기기들을 연결 해제
  2. Window > Devices and Simulators 탭
  3. Unpair Device 선택 후 기기를 물리적으로 해제 (케이블 뽑기).
    1. 중요한 단계다. 기기가 연결되어 있는 경우 프로비저닝 적용에 실패하는 경우가 있음.

이렇게 한 후 다시 프로비저닝을 적용하면 성공한다.

 

 

728x90
반응형
Comments