Seapy's Blog


개발중인 앱을 쉽게 배포하자

iOS 앱을 개발하면서 하루에도 몇번씩 변경되는 앱을 팀원, 테스터에게 배포하는것은 귀찮은 작업입니다.

개발단계에서 iOS 기기에 앱을 설치해주는 방법은 3가지가 있습니다.

1. USB로 연결후 Xcode 에서 빌드하여 설치

2. USB로 연결후 iPhone Conficuration Utility를 이용해 설치

3. 각 사용자의 기기에서 웹사이트에 접속해 설치

이외에도 AdHoc 기능을 이용해 배포하는것이 있다고 알고 있지만 AdHoc 배포를 위해서는 개인개발자 계정이 아닌 좀더 비싼 기업용 개발자 프로그램을 구매해야 합니다. 본 포스트에서는 개인개발자 계정인 경우를 기준으로 설명합니다.

본 포스트에서 설명하고자 하는것은 3번째 방법인 웹을 이용한 배포 및 설치입니다.

내부 배포용 앱 실행파일(ipa) 만들기

웹을 이용한 배포를 위해서는 앱 실행 파일인 ipa 확장자를 가진 파일이 필요합니다. 본인이 개발자가 아닌경우 지인이나 개발자로부터 ipa파일을 받게 되는데 이런 상황인경우 아래쪽의 "ipa 파일을 이용해 웹에서 앱을 설치하기"로 바로 넘어가시면 됩니다.

1. ipa 파일을 만들기 위해서 Xcode 에서 Scheme를 시뮬레이터가 아닌 Device 로 선택합니다. 이때 기기는 연결되어 있지 않아도 됩니다.

2. Build Setting 에서 'Code Signing Identity' 의 Release 에 설정된 프로파일을 배포용 프로파일이 아닌 개발용 프로파일로 변경합니다.

추후 앱스토어 배포할때는 다시 배포용 프로파일로 변경해야 합니다.

주의 : 개발용 프로파일에 설정된 UDID를 가진 기기에서만 실행할 수 있으므로 배포하고자 하는 대상의 UDID가 개발용 프로파일에 포함되어 있는지 확인해야 합니다.(Xcode를 이용해 자동으로 개발 프로파일이 관리되는 경우 Xcode > Orgarnizer 에서 대상 기기를 USB로 연결후 'Use Develop' 버튼을 클릭하고 개발용 프로파일 새로고침을 하면 개발 프로파일에  해당 기기의 UDID가 등록 됩니다.)

3. 메뉴 > Product > Archive 를 클릭하여 배포용으로 앱을 빌드합니다.

4. 빌드완료후 실행되는 Archives 하단 빌드 목록중 방금 생성한 항목을 선택하고 오른쪽 상단의 "Distribute..." 버튼을 클릭합니다.

5. "Save for Enterprise or Ad-Hoc Deployment" 를 선택하고 "Next" 버튼을 클릭합니다.

6. Code Signing Identity 에서는 앞서 2번에서 설정한 개발용 프로파일을 선택하고 "Next" 버튼을 클릭합니다.

7. ipa 파일을 저장할 위치를 물어보는 팝업이 노출되면 적절한 폴더를 선택하고 "Save" 버튼을 클릭합니다.

저장이 완료되어도 별도의 메시지는 없습니다. 순식간에 저장되므로 지정한 위치에 ipa 파일이 생성되어 있다면 ipa 파일의 생성은 완료된것입니다.

IPA 파일을 이용해 웹에서 앱을 설치하기

ipa 파일을 가지고 있다면 이를 이용해 다른 사용자들이 웹에서 쉽게 설치할 수 있습니다. 물론 개발자 프로파일에 등록된 기기만 설치 가능합니다.

Beta Builder for iOS

웹을 이용한 설치를 위해서는 Beta Builder for iOS 프로그램이 필요한데 이 프로그램은 Mac App Store 에서 $1.99에 다운로드 받을수 있습니다. 유료라서 부담이 된다면 개발자가 직접 공개한 소스코드를 GitHub에서 다운로드 받아 Xcode로 빌드해 사용해도 됩니다.(iOS 개발을 한다면 유용한 툴임에 분명하기에 유료로 구매하시는것을 제안합니다. 커피반잔보다 못한 가격입니다.)

1. Beta Builder 를 실행후 "Archive IPA File" 항목의 "Choose IPA..." 버튼을 클릭하거나 생성된 ipa 파일을 드래그하여 입력창으로 드랍합니다.

ipa 파일을 선택하면 Bundle Identifier 등의 정보는 모두 자동으로 입력됩니다.

2. "Full Web Deployment Path" 에는 해당 앱을 배포할 웹사이트 주소를 입력합니다.

드랍박스 이용하기

배포할때 Dropbox를 이용하는것을 추천하는데 이유는 별도로 웹서버에 배포할 필요없기 때문입니다.(2013. 2. 7 추가 : Google Drive 도 비슷한 기능을 제공하기 시작했습니다. 공유 옵션중 Public Share 를 사용하면 됩니다. Dropbox 와는 달리 아무 폴더나 설정가능합니다.)

Dropbox의 Public 폴더는 항상 외부에 오픈되어 있어 누구나 접속가능한 폴더입니다.

ipa 파일을 Dropbox/Public/diffweather 폴더에 저장했을 경우 "Full Web Deploymemt Path"는 http://dl.dropbox.com/u/xxxx/diffweather/ 이와 같은 경로가 됩니다. (여기서 xxxx는 사용자마다의 고유의 값입니다.)

고유의 값은 Dropbox/Public 하위의 파일(폴더아님)을 선택하고 마우스 오른쪽 버튼을 누른후 "Copy Public Link"를 클릭하면 클립보드에 저장된 값으로 알 수 있습니다.

Dropbox 에 업로드된 데이터의 동기화가 모두 종료되었다면 이제 다른 기기에서 웹으로 접속해 앱을 설치 할 수 있습니다.

주의 : 기기에서 접속하는 설치 URL에는 "Full Web Deploymemt Path"에서 입력한 주소뒤에 "/index.html"을 붙여주어야 합니다. 위의 경우 http://dl.dropbox.com/u/xxxx/diffweather/index.html 을 사용자에게 메시지나 메일을 통해 알려주면 됩니다.

3. 사파리 브라우저에  URL을 입력하면 다음과 같은 화면이 보이는데 여기서 iOS 4.0 이상 사용자는 위쪽의 파란 박스, 이하 사용자는 아래쪽의 파란박스를 클릭하여 설치를 진행하면 됩니다. 설치가 진행되면 바탕화면에서 앱이 다운로드 되는것을 확인할 수 있습니다.

    

URL 주소 줄이기

사용자에게 http://dl.dropbox.com/u/xxxx/diffweather/index.html 와 같은 긴 주소를 알려주면 입력하기도 힘들고 오타가 날 수 있으므로 URL 주소를 줄여주는 서비스를 이용해보도록 하겠습니다.

https://bitly.com/ 서비스에 접속후 배포할 웹주소를 입력후 "Shorten" 버튼을 클릭합니다. (ex http://dl.dropbox.com/u/xxxx/diffweather/index.html)

줄여진 주소도 사실 복잡한 문자열로 이루어져 있어 기억하기 쉽지 않습니다.

줄여진 주소를 임의로 수정하려면 bit.ly 서비스에 무료로 가입해야 합니다. 무료로 가입한경우 다음과 같이 줄여진 URL을 얻을수 있습니다.

 

좀더 쉬운 방법

Beta Builder for iOS를 이용해 파일을 생성하고 Dropbox에 올리는 작업이 번거롭다면 이 작업을 대행해주는 서비스를 이용하는것도 좋습니다.

TestFlight 같은경우 생성된 ipa 파일을 업로드하면 자동으로 주소도 만들어 주고 다른 데이터도 제공하는데 자세한 내용은 홈페이지를 참고 하시기 바랍니다.

참고자료

- "7 Tools for Over-the-Air iOS Beta Testing"

- "Beta Builder for iOS 공식 홈페이지"


  1. 글 잘 봤습니다. 따라 해봤는데 사파리에서 반응이 없네요.

    (null)오류가 나서 홈페이지 가서 보니 도메인을 넣어야한다고 해서

    index.html을 수정했는데 null 오류는 안나는데 아무 반응이 없네요.

    ios초보 개발자라 머가 먼지...ㅠㅠ

    확인할 수 없는(해외에 있는) 아이패드에 설치를 해야 해서 테스트 중인데 안됩니다.

    혹시 제가 체크해봐야 할 부분이 있나요?

    도움 부탁드립니다.^^

    이수형 on 2012-05-11
  2. BettaBuilder 에서 도메인 URL 입력하는데 실제 웹서버의 주소를 입력하면 됩니다.

    null 오류는 발생한적이 없는데 이상하네요. 대부분 URL을 잘못입력하거나 개발프로파일에 기기등록안되는 문제들일텐데요

    seapy on 2012-05-16
  3. 앱스토어에서 안사고 우선 소스받아서 돌려서 해보니 잘 되는군요..

    업체가 usb보안 -_-;; 때문에 ipa파일을 줘도 설치가 안되던데 이 방법으로 하니 테스트하기도 편하군요;; 좋은 정보 감사합니다!!

    극악 on 2012-05-21