Seapy's Blog

I Love Tomato Color~!

Archive for the ‘e 세상 이야기/맥OS’ Category

개발중인 iOS(iPhone, iPad) 앱 쉽게 배포하기

with 2 comments

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

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

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

1. USB로 연결후 Xcode 에서 빌드하여 설치
2. USB로 연결후 iPhone Conficuration Utility를 이용해 설치
3. 각 사용자의 기기에서 웹사이트에 접속해 설치

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

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

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

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

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

ota1 300x51 개발중인 iOS(iPhone, iPad) 앱 쉽게 배포하기

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

ota2 개발중인 iOS(iPhone, iPad) 앱 쉽게 배포하기

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

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

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

ota3 개발중인 iOS(iPhone, iPad) 앱 쉽게 배포하기

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

ota4 개발중인 iOS(iPhone, iPad) 앱 쉽게 배포하기

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

ota5 300x252 개발중인 iOS(iPhone, iPad) 앱 쉽게 배포하기

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

ota6 300x249 개발중인 iOS(iPhone, iPad) 앱 쉽게 배포하기

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

ota7 300x275 개발중인 iOS(iPhone, iPad) 앱 쉽게 배포하기

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

ota8 300x155 개발중인 iOS(iPhone, iPad) 앱 쉽게 배포하기

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 파일을 드래그하여 입력창으로 드랍합니다.

ota9 개발중인 iOS(iPhone, iPad) 앱 쉽게 배포하기

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

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

드랍박스 이용하기

배포할때 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 에 업로드된 데이터의 동기화가 모두 종료되었다면 이제 다른 기기에서 웹으로 접속해 앱을 설치 할 수 있습니다.

ota10 개발중인 iOS(iPhone, iPad) 앱 쉽게 배포하기

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

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

IMG 3584 개발중인 iOS(iPhone, iPad) 앱 쉽게 배포하기  IMG 3585 개발중인 iOS(iPhone, iPad) 앱 쉽게 배포하기  IMG 3586 개발중인 iOS(iPhone, iPad) 앱 쉽게 배포하기

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을 얻을수 있습니다.

ota11 개발중인 iOS(iPhone, iPad) 앱 쉽게 배포하기

 

좀더 쉬운 방법

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

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

참고자료

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

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

Written by seapy

May 6th, 2012 at 1:50 pm

Xcode4 설치후 iOS 문서를 찾을수 없는경우

without comments

Xcode4 를 설치후 iOS Document 를 확인하려고 하면 없는 경우가 있다.
(내 생각에는 기본적으로 없을것 같다.)

기존에는 소스코드에서 option 키를 누르고 클래스 이름을 누르면 해당 클래스 문서가 나왔는데 이상하게 Xcode4 설치후 안나와서 잘 살펴 보았더니 Xcode4 가 설치되면서 iOS 4.3 문서는 같이 설치가 안되었다.

이상해서 Xcode4 설치 옵션을 다시 살펴봤더니 Document 항목은 0 bytes 이며, 추후에 알아서 다운받는다고 되어있다.
(내가 유추해보기로는 알아서 다운받는다고 하는경우 우선순위가 Xcode -> Mac OS -> iOS 이렇게 되지 않나 싶다 그래서 자동으로 받는데 iOS 는 다운이 안되어 있던게 아닐까 싶다.)

그래서 확인해보니 지금 Xcode4 가 다운받아 놓은 문서는 Mac OS SDK 와 Xcode 문서뿐 iOS 문서는 다운되지 않았서 수동으로 Xcode 의 환결설정 -> Documentation 탭을 눌러서 GET 버튼을 눌러 설치를 진행 하였다.

스크린샷 2011 03 12 오전 3.29.55 Xcode4 설치후 iOS 문서를 찾을수 없는경우

설치를 하게 되면 Getting… 이라는 글씨만 나오고 얼마나 진행 되었는지 언제쯤 끝날지 이런 정보가 하나도 안나온다;;

나는 한 10분정도 기다리다가 계속 Getting… 상태로 남아있는데 좀 지나보니 다 다운되어 있었다.

Written by seapy

March 13th, 2011 at 10:19 pm

맥에서 지메일 구글보이스 이용

with 2 comments

구글(google)의 VOIP(인터넷 전화) 서비스인 구글 보이스(google voice)는 현재 미국내와 캐나다 지역에 전화를 할때는 무료이다.

작년에는 지메일에서 바로 전화를 걸수 있도록 시스템이 업그레이드 되었는데 불행히도 한국 사용자들의 경우 해당 기능이 활성화 되지 않았다.

googlevoice1 300x222 맥에서 지메일 구글보이스 이용

그런데얼마전부터 지메일에 접속하면 구글 보이스를 사용할수 있다는 팝업이 뜨면서 설치 할것인지 여부를 묻는 창이 뜨고 있다.(현재 설치된 사람을 보면 맥유저들 뿐이다. 윈도우에서는 팝업이 안뜬다)

하지만 현재 맥용(Snow Leopard) 크롬브라우저에서 지메일접속후 구글보이스를 사용하는데 한가지 오류가 있어 바로 사용 할 수 없다.

오류 내용 : 구글 보이스 플러그인을 다운받아서 설치하라고 해서 링크 눌러서 설치해도 계속 설치하라고 나온다(“Please download voice plugin to make a call”)

해결 방법은 다음과 같다.

  1. http://www.google.com/chat/video 접속후 설치파일 다운로드(dmg 확장자의 파일)
  2. 1에서 다운받은 파일을 실행하여 설치 실행
  3. 브라우저로 지메일 접속후 구글 보이스 실행

참고 URL : http://mail.google.com/support/bin/answer.py?hl=en&answer=105404#

구글 보이스가 정상적으로 설치되면 지메일에 접속하는 경우 친구목록 위쪽에 Call Phone 라는 항목이 생기고 누르면 나오는 전화모양의 페이지에서 일반 전화 하듯이 전화를 하면된다.

googlevoice3 맥에서 지메일 구글보이스 이용

현재 확인해보니 미국이나 캐나다로 거는건 바로 되고, 그 외 국가로 걸면 돈을 충전하라는 메시지가 나오고 있다.

한국 사용자들의 경우 미국이나 캐나다에 전화할일이 있으면 구글 보이스를 이용하면 무료로 할 수 있다 ^^

안타깝게도 나는 미국이나 캐나다에 전화 할 사람이 없다.

Written by seapy

March 9th, 2011 at 11:04 pm