[iOS][watchOS] 시뮬레이터용으로 빌드한 앱 배포



개발 중 앱 배포라고 하면 AdHoc 앱을 빌드한 배포가 있지만 시뮬레이터용으로 빌드한 앱을 배포하는 방법도 있습니다.

실제 기기에서 동작 확인을 할 필요가 없는 경우나, 프로비저닝 파일의 준비가 번거롭거나, 소스 코드를 건네주고 싶지 않은 엔지니어에게 앱의 동작을 확인해 주는 등으로 유효할까 생각합니다.

시뮬레이터용 앱을 배포할 때까지 앱을 받은 측이 시뮬레이터에 앱을 설치할 때까지 가능한 한 간단한 단계를 만들었습니다.

※OS X El Capitan(10.11.4)과 Xcode 7.3에서의 확인 결과를 바탕으로 기사를 작성하고 있습니다.

시뮬레이터용 앱 빌드 및 배포



1. 앱 빌드



Xcode에서 시뮬레이터 용 앱을 빌드하면 아래 디렉토리 아래에 앱이 생성됩니다.

시뮬레이터 용으로 빌드 한 앱이 저장되는 디렉토리
~/Library/Developer/Xcode/DerivedData/*/Build/Products/*-iphonesimulator/

2. 시뮬레이터용으로 빌드된 앱의 경로 확인


ls 명령으로 시뮬레이터 용으로 빌드 된 *.app을 표시하고 앱의 경로를 확인합니다.

시뮬레이터 용으로 빌드 된 앱의 경로를 조사합니다.
$ cd ~
$ ls -dt Library/Developer/Xcode/DerivedData/*/Build/Products/*-iphonesimulator/*.app | head -1
Library/Developer/Xcode/DerivedData/DemoApp-dfhsvtzcrpubnsfdxlmkocxgrjst/Build/Products/Debug-iphonesimulator/DemoApp.app
ls -t 옵션은 파일 업데이트 시간의 가장 최근 순서로 정렬하는 옵션입니다.ls 명령의 출력의 1행에는, 마지막으로 빌드된 앱의 패스가 출력되고 있을 것이므로 head -1 그리고 마지막에 빌드된 앱의 패스를 취득하고 있습니다.

3. 배포를 위해 앱을 zip 파일로 만들기



작성된 *.app 를 그대로 배포하면 OK입니다만, *.app의 실태는 디렉토리이므로 zip 파일로 하고 나서 배포하는 것이 좋을 것입니다.

앱이 저장된 디렉토리를 열고 *.app에서 zip 파일을 만듭니다.

앱이 저장된 디렉토리 열기
$ open Library/Developer/Xcode/DerivedData/DemoApp-dfhsvtzcrpubnsfdxlmkocxgrjst/Build/Products/Debug-iphonesimulator/DemoApp.app/..



명령줄에서 zip 파일을 만들고 싶다면 다음과 같이 만들 수 있습니다.
배포를 자동화하고 싶다면 명령 줄에서 zip 파일을 만드는 것이 좋습니다.

앱에서 zip 파일 만들기
$ ditto -ck --sequesterRsrc --keepParent 【appのパス】 【保存するzipのパス】

배포 파일을 만드는 절차는 이상입니다.

시뮬레이터에 앱을 설치하는 방법



앱을 받은 측은 아래 절차에 따라 시뮬레이터에 앱을 설치합니다.

1. 시뮬레이터에서 사용할 수 있는 장치 목록 표시


xcrun instruments -s 명령으로 사용할 수 있는 장치 목록을 표시합니다.

시뮬레이터에서 사용할 수 있는 장치 목록 보기
$ xcrun instruments -s | grep Simulator
2016-04-13 23:02:12.902 instruments[33430:3069005] WebKit Threading Violation - initial use of WebKit from a secondary thread.
Apple TV 1080p (9.2) [65974E2D-13CD-4677-UDID-125F8E0CE635] (Simulator)
iPad 2 (8.4) [F0762704-BC53-4ED6-UDID-F3A87C74ADEC] (Simulator)
iPad 2 (9.3) [EC6FD2AD-01F4-4F99-UDID-6695AEEC0682] (Simulator)
iPad Air (8.4) [CECF346B-D124-47C6-UDID-C16D7802A96C] (Simulator)
iPad Air (9.3) [1B3F987C-36D6-4210-UDID-CD1E99FC1EDD] (Simulator)
iPad Air 2 (9.3) [2E54CC69-07B0-47DE-UDID-BDCEE48A22BB] (Simulator)
iPad Pro (9.3) [93F28197-6A1A-42F0-UDID-8BFBAC076D7B] (Simulator)
iPad Retina (8.4) [832F8347-CA45-4C8E-UDID-D3F162512FC1] (Simulator)
iPad Retina (9.3) [D81BF3F5-B564-4CE7-UDID-E06F1891D9E7] (Simulator)
iPhone 4s (8.4) [38A86D07-E4E4-433D-UDID-79BD0E6DC1C5] (Simulator)
iPhone 4s (9.3) [461D409F-E598-4795-UDID-F19D725A6FBF] (Simulator)
iPhone 5 (8.4) [88113205-6E0D-44B1-UDID-63DC85FF50C1] (Simulator)
iPhone 5 (9.3) [E221914E-6CC0-4D65-UDID-472843B379BF] (Simulator)
iPhone 5s (8.4) [03592F14-E1AE-464F-UDID-7400249037F4] (Simulator)
iPhone 5s (9.3) [54021DC5-4C11-4033-UDID-9C1A4CB0CF7B] (Simulator)
iPhone 6 (8.4) [B9330956-95AF-4C21-UDID-8B11886B2BF3] (Simulator)
iPhone 6 (9.3) [59EFC74E-F66C-4605-UDID-CEED74ABDD29] (Simulator)
iPhone 6 Plus (8.4) [52A8865F-4316-4431-UDID-EEA5F0E6D899] (Simulator)
iPhone 6 Plus (9.3) [D8A2F4F9-7D84-4A88-UDID-0323803583DE] (Simulator)
iPhone 6s (9.3) [2400D44E-55EB-43B4-UDID-1F0277E0DB6D] (Simulator)
iPhone 6s (9.3) + Apple Watch - 38mm (2.2) [A4953BF6-80D3-4226-UDID-22219D44CF15] (Simulator)
iPhone 6s Plus (9.3) [2B7AFC0F-B5EB-4939-UDID-3871D6A227E1] (Simulator)
iPhone 6s Plus (9.3) + Apple Watch - 42mm (2.2) [A69DFB85-558B-48EE-UDID-FCBB74FE7B5F] (Simulator)
[ ] 로 둘러싸인 부분이 디바이스의 UDID가 됩니다.
이 UDID를 지정하여 시뮬레이터를 시작하고 앱을 설치합니다.

2. 시뮬레이터 시작



사용하려는 장치의 UDID를 지정하고 시뮬레이터를 시작합니다.

시뮬레이터 시작
$ open -a Simulator --args -CurrentDeviceUDID 【UDID】

3. 앱 설치



시뮬레이터가 시작되면 앱을 설치합니다.

UDID가 지정된 앱 설치
$ xcrun simctl install 【UDID】 【アプリ名】.app

UDID는 booted로 바꿀 수 있습니다.
booted를 지정하면 현재 실행중인 시뮬레이터에 앱이 설치됩니다.

booted로 앱 설치
$ xcrun simctl install booted 【アプリ名】.app

안전하게 설치가 완료되면 시뮬레이터 홈 화면에 앱 아이콘이 표시됩니다.



이상입니다.

좋은 웹페이지 즐겨찾기