일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- docker
- net
- 한 번만 실행
- MFC
- php
- PDA
- .net
- VS2008
- C#
- Antialiasing
- Font
- 와이브로
- 블루투스 헤드셋
- 기념일관리
- EUC-KR
- C/C++
- protobuf-c
- plcrashreporter
- JavaScript
- M8200
- API
- phpmailer
- 자바스크립트
- crashlog
- ClickOnce
- 데이터 전달
- 설치제거
- 크래시로그
- self-signed ssl
- GDI
- Today
- Total
~☆~ 우하하!!~ 개발블로그
iOS App - AdHoc 버전 배포하기 본문
iOS App 을 개발하여 애플 앱스토어에 올리기 전에 수많은 테스트를 거쳐야만 하는 것이 적절한 프로세스이다.
개발자 혼자서 수없이 테스트를 한다고 해도 발견할 수 없는 버그가 반드시 있다.
되도록이면 많은 베타테스터가 있으면 좋겠다.
베타테스터에게 테스트용 앱(AdHoc 버전)을 배포하는 방법중에 OTA 방식을 이용한 배포 방법을 소개하고자 한다.
이 방법은 DevTong Framework 를 사용하는 방법이다. (http://devtong.com)
가장 먼저 AdHoc 배포용 Provision 프로파일을 생성해주어야 한다. (실제로는 Development Provision 파일을 사용해도 상관없다. 앱이 설치될 기기가 등록되어 있기만 하다면...)
Apple 개발자 사이트에 로그인하여 Provisioning - Distribution 을 선택한 후 오른쪽 상단의 New Profile 버튼을 누른다.
Distribution Method 에서 Ad Hoc 을 선택하고, 적절하게 Profile Name 을 입력한 후 배포하고자 하는 앱의 App ID 를 선택한다.
베타테스터의 기기를 선택한 후 Submit 버튼을 누르면 AdHoc 배포용 인증서(Provision Profile)이 생성된다.
devtong.com 사이트의 AdHoc - Provision File 메뉴에서 방금 생성한 배포용 인증서 파일을 등록한다.
이로써 1차적인 준비가 완료되었다.
이제 배포할 앱에 작성할 코드를 설명하도록 하겠다.
====================================
배포하고자 하는 앱에 다음과 같은 DevTong Framework 용 코드를 추가한다.
AppDelegate.h 파일에서 UIAlertViewDelegate 를 처리하겠다라고 표시한다.
@interface AppDelegate : UIResponder <UIApplicationDelegate /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // LatestVersionManager , UIAlertViewDelegate /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// >
AppDelegate.m 파일에서 최신버전의 AdHoc 버전이 등록되었는지를 확인하고,
최신버전이 존재하면 업데이트가능함을 AlertView 로 표시하는 코드를 작성해준다.
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // LatestVersionManager #import <DevTongFramework/DevTongLatestVersionManager.h> /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - (void)applicationDidBecomeActive:(UIApplication *)application { /* Restart any tasks that were paused (or not yet started) while the application was inactive.
If the application was previously in the background, optionally refresh the user interface. */ /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // LatestVersionManager BOOL adhoc = NO;// AdHoc 버전이 아닌 경우에 해당된다. #ifdef _ADHOC adhoc = YES;// AdHoc 버전인 경우에 해당된다. #endif [[DevTongLatestVersionManager sharedManager] CheckAvailableUpdate:adhoc]; if ([[DevTongLatestVersionManager sharedManager] IsAvailableUpdate]) { NSString* strMessage = [NSString stringWithFormat:@"버전 [%@]\n---------------------\n\n%@", [[DevTongLatestVersionManager sharedManager] AvailableVersion], [[DevTongLatestVersionManager sharedManager] WhatsNewOfNewVersion]]; UIAlertView* alertView = [[[UIAlertView alloc] initWithTitle:@"업데이트 가능" message:strMessage delegate:self cancelButtonTitle:@"취소" otherButtonTitles:@"업데이트", nil] autorelease]; NSArray* arraySubviews = [alertView subviews]; UIView* subview = [arraySubviews objectAtIndex:1]; if ([subview isKindOfClass:[UILabel class]]) { ((UILabel*)subview).textAlignment = UITextAlignmentLeft; } [alertView show]; } /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// }
이제 AlertView 에서 업데이트 버튼이 눌렸을 때 업데이트할 수 있는 화면으로 이동하는 기능을 구현한다.
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // LatestVersionManager - (void)moveToAppUpdate { [[DevTongLatestVersionManager sharedManager] MoveForUpdate]; } #pragma mark UIAlertViewDelegate - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex { if (buttonIndex == [alertView cancelButtonIndex]) return; // 이동 [self moveToAppUpdate]; } ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
앱을 빌드하고 아래 그림에 표현된 것과 같은 순서로 ipa 파일을 만들어낸다.
다시 devtong.com 사이트에서 AdHoc - Distribute 메뉴에서 앱의 버전과 제목, 그리고 방금 만들어낸 ipa 파일을 선택하고, 적절한 업데이트 내용을 입력한 후 저장한다.
앱을 배포하는 URL은 devtong.com 의 AdHoc - Install Link 에서 구할 수 있다.
베타테스터에게 위 URL을 알려준 후 아래쪽 인증서 설치 후 앱을 설치하도록 유도해주기만 하면 된다.
일단 테스트용 앱이 설치된 후에 새로운 버전의 ipa 파일이 등록되면, 설치되어 있는 앱을 실행시키기만 하면 아래 화면에서 볼 수 있는 것과 같이 앱 업데이트 알림 화면이 나타나며, 자동으로 앱을 업데이트할 수 있는 화면으로 전환할 수 있다.
아래 화면은 적용된 모습이다.
업데이트 버튼을 누르면 아래와 같이 새로운 버전의 앱을 설치할 수 있는 화면으로 이동된다.
'iPhone & Cocoa' 카테고리의 다른 글
iOS App - Crash Log 파일 전송하기 (0) | 2012.07.04 |
---|---|
iOS App - Crash Log 작성하기 (0) | 2012.07.04 |
iOS Back-End Framework : DevTong (0) | 2012.07.02 |
[NSString stringWithString:nil] 의 리턴값은 어떻게 될까? (0) | 2012.04.13 |
프로젝트 빌드 전 스크립트로 빌드넘버 증가시키기 (0) | 2012.03.31 |