#getMobileprovisionUUID.sh

#!/bin/bash
if [ $# -ne 1 ]
then
 echo "Usage: getmobileuuid the-mobileprovision-file-path"
 exit 1
fi
# mobileprovision_uuid=`grep UUID -A1 -a $1 | grep -o "[-A-Z0-9]\{36\}"`
mobileprovision_uuid=`/usr/libexec/PlistBuddy -c "Print UUID" /dev/stdin <<< $(/usr/bin/security cms -D -i $1)`
echo "UUID is:"
echo ${mobileprovision_uuid}
${scriptPath}/getMobileprovisionUUID.sh ${provisionPath}/${provisionName}.mobileprovision
UUID is:
UUID 결과값
반응형

 

iOS에서 앱을 배포하는 방법에는 App Store, Ad Hoc, Enterprise, Development 등 네 가지 방법이 있다.

오늘은 Ad Hoc 배포를 위해 필요한 기기등록에 대한 내용을 얘기할까 한다.

이에 앞서서 간단하게 각 배포 방법의 차이점이 무엇인지를 간략하게 정리하면 이러하다.

 
구분
용도
비고
App Store
TestFlight 혹은 App Store 등록용
 
Ad Hoc
등록된 내부인원을 위한 테스트
* 기기등록 필요
* 신규 기기 등록시 프로비너징 프로필 업데이트
Enterprise
조직 내부에서 사용하는 전용 앱에 주로 사용
* 엔터프라이즈 프로그램을 신청해야 사용할 수 있음
* 애플 로그인과 같은 몇몇 Capability 사용 불가
Development
내부 개발용
 

 

 

| 1. 기기등록

 

  • 애플 개발자 센터 > Account > Certificates, Identifiers & Profiles > Device 탭으로 이동하여 신규 기기를 등록해야한다.
  • Platform, Device Name, Device ID 등 기기 등록에 필요한 정보를 알맞게 입력하면 Continue 버튼이 활성화된다.
  • Continue > Register > Done 을 차례대로 눌러주면 기기등록은 끝이다.

 

| 2. 프로비저닝 생성 혹은 갱신

 
생성해둔 프로비저닝이 없다면 생성해준다.

 

이미 생성한 프로비저닝이 있다면 기기만 추가적으로 등록하면 된다.

 

  • Edit 버튼 클릭
  • 스크롤을 내려보면 아래 이미지와 같이 디바이스 목록을 확인할 수 있다.

위 화면에서 신규로 등록한 기기를 체크해주고 저장 후 생성 혹은 갱신된 프로비저닝을 다운로드 받는다.

 

| 3. 갱신된 프로비저닝 등록

  • 다운로드 받은 프로비저닝을 더블클릭하여, Xcode에 등록

※등록된 프로파일은 Xcode 혹은 /Users/${User}/Library/MobileDevice/Provisioning Profiles 폴더에서 확인할 수 있다.

 

위와 같이 사이닝을 자동으로 했을 경우 별다른 처리 없이 신규로 등록된 프로비저닝으로 빌드를 할 수 있고, 수동일 경우 새 프로비저닝 선택하면 된다.

 

| 4. 프로비저닝 프로필 UUID 확인방법

 

CI/CD를 이용하는 경우 프로비저닝 프로필의 UUID가 필요한 경우가 있는데, 정보 가져오기 메뉴에서 확인 가능하다.

 

혹은 Finder에서 계층/갤러리 형태로 보기 설정을 한 뒤, 파일을 선택하면 UUID를 확인할 수 있다.

하지만 기기등록은 꽤 빈번한 편으로 매번 22자릿수의 UUID를 눈으로 보며 확인하는 것은 쉬운 일은 아니다.

 

#getMobileprovisionUUID.sh

#!/bin/bash
if [ $# -ne 1 ]
then
 echo "Usage: getmobileuuid the-mobileprovision-file-path"
 exit 1
fi
# mobileprovision_uuid=`grep UUID -A1 -a $1 | grep -o "[-A-Z0-9]\{36\}"`
mobileprovision_uuid=`/usr/libexec/PlistBuddy -c "Print UUID" /dev/stdin <<< $(/usr/bin/security cms -D -i $1)`
echo "UUID is:"
echo ${mobileprovision_uuid}
 

위 코드를 이용해서 프로비저닝 프로파일의 UUID를 추출해보자.

${scriptPath}/getMobileprovisionUUID.sh ${provisionPath}/${provisionName}.mobileprovision
UUID is:
UUID 결과값
 

 

반응형

신규 Profile로 빌드된 앱을 처음 실행하면 기기에서 해당 앱 개발자를 신뢰할 수 없다는 알림이 표시됩니다.

이 메시지를 닫은 후 해당 앱 개발자에 대한 신뢰를 설정할 수 있습니다.

 

  • ‘설정 > 일반 > 프로파일 또는 프로파일 및 기기 관리’를 탭합니다. (혹은 설정 > 일반 > VPN 및 기기 관리 - 기업용 앱)

 

'기업용 앱' 제목 아래에 개발자의 프로파일이 표시됩니다.



※실제론 앱개발사의 프로파일이 보입니다.

 

기업용 앱 제목 아래에 있는 개발자 프로파일 이름을 탭하여 이 개발자에 대한 신뢰를 설정합니다.

프로파일을 신뢰한 후에 앱이 정상적으로 실행됩니다.

 

| 참고

 

반응형

| 현상

$ /usr/bin/agvtool new-marketing-version 0.1
xcode-select: error: tool 'agvtool' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance
FATAL: Could not set CFBundleShortVersionString to: 0.1
Build step 'Conditional step (single)' marked build as failure
 

 

| 원인

Xcode 설치 과정에서 경로가 잘못 설정되었을 경우 해당 에러 발생

 

| 해결방법

sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
 

Xcode가 설치된 경로에 xcode-select 명령어 입력

 

| 참고

 

반응형

+ Recent posts