2009/12/03 09:40

베타 테스팅 도중 튕길 경우

베타 테스팅 도중 튕길경우 어디서 뭘 했더니 어떻게 되더라 식으로 알려주시면 왠만해선 해결됩니다만

완성도 높은 어플을 만들다 보니 점점 복잡해져서

똑같이 따라해도 이쪽에서는 안튕기는 경우가 있습니다.

이경우 테스트 하시다가 튕기면

다시 컴퓨터에 동기화 하시고

해당 위치로 가시며 크래시 리포트 파일이 있을겁니다

그 파일은 제게 (mtjddnr@hotmail.com) 보내주시면 감사하겠습니다

  • Mac OS X :~/Library/Logs/CrashReporter/MobileDevice/<DEVICE_NAME>
  • Windows XPC:\Documents and Settings\<USERNAME>\Application Data\Apple computer\Logs\CrashReporter/<DEVICE_NAME>
  • Windows VistaC:\Users\<USERNAME>\AppData\Roaming\Apple computer\Logs\CrashReporter/MobileDevice/<DEVICE_NAME>
저작자 표시 비영리 동일 조건 변경 허락
Trackback 0 Comment 0
2009/06/05 11:45

개발자 강좌 - Ad Hoc 배포

이번에는 베타 테스트를 위한 Ad Hoc 방식이 배포 방법을 다뤄보겠습니다

Ad Hoc 배포는 어플스토어를 거치지 않고 소스없이 어플을 기기에 넣게 해주는 방식입니다

사용예) 베타 테스팅, 소스 전달 하지 않고 어플만 보여줄때 등등

한가지 주의할 점은 무제한 배포가 불가능하다는 겁니다

등록 가능한 기기가 최대 100대라서 어플 스토어 거치지 않고 무료 배포를 생각하는 분들도 계십니다만 일단 이 방식으로는 무리라고 보시면 됩니다

거기에 인증키가 유효 기간도 있어서 만기후 설치할수 없게 됩니다 


Ad Hoc배포를 하는데 필요한 작업은 간단하게
1. 테스트 할 기기 등록 (UDID를 전달 받아야 함)
2. Ad Hoc용 프로비션 프로파일 제작
3. 받은 프로비션 프로파일을 입혀서 소스 빌드
4. 프로비션 프로파일과 빌드된 .App 폴더 같이 압축해서 전달
이 됩니다.

그리고 만들어서 받은 프로비션 프로파일에 사용할 기기 리스트가 들어가 있기 때문에
빌드가 끝난 시점에서 새로운 기기를 등록하게 되면 프로파일 제작부터 다시 하셔야 합니다 
(자동 링크가 아님) 



직접 해보겠습니다

먼저 베타 테스트를 받을 기기의 UDID를 받습니다. 
사용자와 연락을 통해 받으셔야 합니다

받은 UDID를 포탈에 등록합니다


참조를 붙여놓으니 간단히 끝나는군요;;;


이제 Ad Hoc용 프로파일을 만들어 보겠습니다

우선 포탈에 들어가서 Provisioning항목에 들어갑니다


위에 탭에서 Develoment옆에 Distribution을 클릭합니다


오른쪽 상단에 Add Profile을 클릭합니다



<프로파일 작성페이지>
Distribution Method : 애플스토어에 올릴 것인지 Ad Hoc인지 고르는겁니다 물론 Ad Hoc을 선택합니다

Profile Name : 프로파일 명을 적습니다 저의 경우 "어플명 AdHoc"라고 사용했습니다

Distribution Certificate : 개발자 인증서입니다 자동으로 선택되어 있습니다. 없을 경우 등록하셔야 합니다 (참조: 개발자 강좌 - 키체인 등록 )

App ID : 어플 아이디를 선택합니다 (기기에 돌려보기 설정과 동일. 참고: 개발자 강좌 - 기기 테스트 )

Devices (optional) : 테스트에 사용할 기기를 선택합니다. (필수)



마지막으로 Submit을 클릭합니다


잠시 기다렸다가 새로고침하면 프로파일이 뜹니다



프로파일을 받고 더블클릭으로 설치 합니다

프로비션 프로파일 설치 법은 기기 테스트 강좌와 동일합니다


이제 xCode에서 몇가지 작업합니다

먼저 프로젝트에서 새파일로 Entitlements.plist파일을 만듭니다


그리고 파일의 설정에서 get-task-allow항목에 체크를 뺍니다


프로젝트 설정에 들어갑니다


Configuration 탭에 들어갑니다


Release항목을 선택한뒤 하단에 Duplicate를 클릭합니다


새로 생긴 부분을 Ad Hoc Distribution로 바꿉니다 (*철자 틀리면 안됨)


Build 탭으로 가서 Configuration 항목을 Ad Hoc Distribution으로 선택합니다


Code Signing Identity와 Any iPhone OS항목을 설치한 키를 선택합니다


다음은 바로 위 항목인 Code Signing Entitlements항목을 수정합니다

빈칸을 더블클릭하면 입력창이 뜹니다

만든 AdhocEntitlements.plist파일 이름을 씁니다





빌드메뉴를 Active SDK를 디바이스로 하고 Active Configuration을 Ad Hoc Distribution으로 선택합니다


빌드메뉴에서 클린해주고 빌드합니다 (빌드 & 고 가 아닙니다)



빌드가 끝나면 빌드된 파일이 있는곳으로 갑니다





.dSYM파일은 무시하고 .app폴더와 (파일처럼 보이나 사실 폴더) 위에서 받아둔 프로비션 프로파일을 모아둡니다


두개의 파일(과 폴더)을 압축합니다


압축된 파일을 테스터에게 전달해 주면 됩니다만

빌드가 제대로 안되는 경우가 많기 때문에 (xCode버그 인듯)

먼저 자신의 기기에 테스터 방식으로 올려봐서 되는지 확인합니다 (싱크후 기기에서 작동까지 다 확인)





저작자 표시 비영리 동일 조건 변경 허락
Trackback 0 Comment 1
2009/06/04 01:15

개발자 강좌 - Instruments

이번에는 검사 툴인 Instruments를 사용해 보겠습니다


Instruments에는 어플의 성능을 검사하기 위한 여러가지 기능이 있습니다



전 OpenGL ES기반 게임등을 개발하지 않기 때문에 (주로 유틸) 거의 메모리 누수 확인하는데만 사용합니다

Instruments를 직접 열고 원하는 테스트 항목을 추가해서 사용하는 방법도 있습니다만

여기서는 간단히 xCode에서 바로 여는 기능을 소개하겠습니다

먼저 테스트할 프로젝트를 엽니다

그리고 Run메뉴 -> Start with Performance Tool 에서 사용할 검사를 선택하면 Instruments가 자동으로 켜지며 테스트를 시작하게 됩니다


테스트 가능 항목도 시뮬레이터를 사용하냐 기기를 사용하냐에 따라 틀립니다

(시뮬레이터 사용시)

제가 사용하는 기능은 대체적으로 Leaks와 Activity Monitor를 사용합니다

먼저 Leaks를 보겠습니다

실행하게 되면 그래프가 리얼타임으로 그려지며 현재의 메모리 사용량과 메모리 누수경우를 알려줍니다


상단의 그래프가 메모리 사용량이며 그 아래가 누수입니다

한가지 주의 하실 점은 메모리 누수가 일어나면 바로 뜨는게 아닙니다

메모리 누수는 기본적으로 매 10초마다 검사를 하도록 인터벌이 정해져 있습니다 (수정가능)

그래서 테스트 요령으로 한 기능을 실행해보고 잠시 기다렸다 다음 테스트를 해보는것이 디버깅 할때 편합니다
(어디서 어떻게 했더니 누수가 나더라 식으로 추적가능)


누수 그래프를 클릭해보면 어디서 누수가 났는지 알려줍니다


Address부분에서 항목에 화살표를 클릭하면 대략 어디서 누수가 나온건지 추측할수 있습니다



Activity Monitor는 시스템의 상태를 볼수있습니다


개발 어플을 실행하면 나중에 켜지기 때문에 프로세스 아이디가 거의 마지막에 생깁니다

그래서 프로세스 아이디 정렬로 해보면 (역순) 작동중인 어플이 보일겁니다

현재 대략 5.52메가 메모리를 사용하고 있군요

아까 메모리 누수테스트에서 했던것과 동일한 방법으로 천천히 한기능 한기능 해봅니다

그러면 모니터에 한박자 늦은 감으로 메모리가 올라갔다 내려갔다하는것이 보일겁니다

다른 화면에 갔다가 (네비게이터컨트롤러의 경우) 돌아왔는데 메모리가 거의 그대로고 매번 갔다올때마다 계속 메모리가 증가한다면 메모리 누수입니다.

Leaks에서 못찾는 메모리 누수도 있을수 있습니다.


마지막으로 시뮬레이터에서 메모리 누수라고 뜨지만 실제로 기기에 올려보면 그렇지 않은 경우도 있습니다
 (저 처럼 괜히 헤매지 마세요)

저작자 표시 비영리 동일 조건 변경 허락
Trackback 0 Comment 0