2011년 11월 14일 월요일

How To Use ADB : Android Logcat

1. 도스경로 이동 cd c:\work\android\android-sdk_r06-windows\android-sdk-windows\platform-tools

2.  
cmd/u 엔터
e


3.
chcp 65001 엔터

4.
도스창위 오른클릭. 속성-글꼴-Lucida Console 로 변경

5.
adb logcat 엔터

2011년 11월 9일 수요일

Problem opening new ViewController after UIImagePickerController

UIImagePickerController *cameraController;


[self.cameraController dismissModalViewControllerAnimated:NO];
    [[self.cameraController parentViewController] dismissModalViewControllerAnimated:NO];

2011년 11월 5일 토요일

To rename a project in Xcode 4

1) 복사할 프로젝트 선택 복사

2) 붙여넣을 폴더에 붙여넣기

3) 붙여넣은 폴더에서 xcode실행

4) 최상위 프로젝트 이름 선택하고 Choose View > Utilities > Show File Inspector 선택하면 오른쪽에 보조창이 나타남.




5) Project Name 부분에 원하는 이름으로 바꾸고 return키를 치면 다음 창이 나오는데 Rename 누를 것

6) 다음 나오는 창에서 Enable 누름

7) 붙여넣은 폴더에 보면 예전 xxxx.xcodeproj 파일과 이름을 바꾼 yyyy.xcodeproj 이 같이 있음. 예전 이름 파일을 휴지통으로 보내고 새로 바꾼 이름 파일을 실행할 것

8) 폴더이름도 바꾼 프로젝트 이름에 맞춰서 바꾸면 다음 경고창이 뜨는데 Re-Save 선택

9) xcode를 종료하고 다시 시작한다. shift+command+k 로 클리어 해주고 shift+command+b 로 다시 빌드하면 완전히 새로운 프로젝트로 정상 작동.

2011년 11월 3일 목요일

App Store 아이폰 어플리케이션 등록 방법 정리 (Xcode4 환경)

http://cafe.naver.com/mcbugi/138709

App Store에서 아이폰 어플 등록 신청 방법을 정리 해 보았습니다.
사용한 개발환경은 Xcode4 입니다.
iTunes Connect 에서 어플의 신규 등록은, 입력항목이 꽤 많기 때문에, 필요한 정보를 미리 준비해 두는 것을 추천 합니다.

1. 증명서의 요구 및 인스톨
이 작업은, 한번만 해 두면, 다음 부터는 할 필요는 없습니다.

(1)iOS Provisioning Portal」의 「Certificate」에서 「Distribution」를 선택, Request Certificate」버튼을 클릭해서 증명서 요구를 다운로드
리퀘스트 파일은 「Development」에서와 같은 것을 사용하면 좋습니다.

(2) Certificate Request Requires Your Approval」라는 메일이 도착합니다.

(3)  업로드 한 증명서의 Status 가 「Issued」로 된 것을 확인하고, 「Download」버튼을 클릭해서 「증명서distribution_identity.cer)」를 다운로드

(4) 다운로드한 증명서를 더블클릭해서, 키체인에 증명서를 추가
※WWDR은, 전에 등록 완료 되어 있으면, 새롭게 다운로드 할 필요는 없습니다.

2.공개 어플리케이션 전용 AppID의 작성
필요하다면 작성. 개발에서 사용하고 있는 AppID를 사용한다면, 그대로도 좋습니다.

3.공개용 프로비지닝 프로파일의 작성
(1) iOS Provisioning Portal」의「Provisioning」의「Distribution」탭에서 「New Profile」버튼을 클릭. 「Distribution Method」은 「App Store」를 선택, Profile Name」에는 적당한 이름을 입력, App ID」는 해당하는 것을 선택 합니다.

(2)  잠시 기다리면, 위의 페이지에 Download」버튼이 표시 되므로, 프로비지닝 프로파일를 (xxxxx.mobileprovision)를 다운로드.

(3)  다운로드 한 프로비지닝 프로파일를 더블클릭 해서, Xcode의 오거나이저에 추가 합니다.(자동추가)
※Xcode를 실행해서 윈도우-오거나이저 에서, 라이브러리의 [Provisioning Profiles]에 추가 되어 있는 것을 확인

4.iTunes Connect에서, 어플리케이션 신규등록
(1) Manage Your Applications」에서 「Add New App」버튼을 클릭

처음 어플리케이션을 등록 할 경우, 아래의 2가지를 입력을 해야 합니다.
・「Primary Language」를 「English」로 설정 ( 로컬라이징을 안한 국가에 기본적으로 보이는 언어 설정)
・「company」또는 「developer name」을 입력 (앱 스토어에 표시되는 부분)
해외에서도 사용되는 가능성이 있다면 「Primary Language」는 「English」로 해 두는 것이 좋습니다.
위의 두 부분은 변경이 불가능 합니다.

(2)  우선 영어로 어플 정보를 입력 합니다.
・「App Name」에는 어플 이름을 입력 (영어) 
・「SKU Number」에는 적당한 (다른 어플이랑 다른) 번호를 입력
・「Bundle ID」에는 맞는 것을 선택

・「Availability Date」에 App Store에의 공개일을 지정
・「Price Tier」에서 가격을 지정
・「Discount for Educational Institutions」은 교육기간 대상으로 할인

・「Version Number」에 버전번호를 지정 (엑스코드와 동일한 숫자)
・「Description」에 어플에 관련된 설명을 입력 (영어)
・「Primary Category」에서 카테고리 선택
・「Secondary Category」에서 카테고리 선택
・「Keywords」에서 키워드 입력 (콤마로 구분) (영어)
・「Copyright」카피라이트 입력 (영어)
・「Contact Email Address」에 메일 주소를 입력
・「Support URL」어플리케이션 서포트를 위한 사이트 주소 입력
・「App URL (optional)」앱 소개의 사이트 입력
・「Review Notes (optional)」에 어플 심사를 추가 정보가 있다면 입력
・「Rating」 등급을 지정
・「EULAEnd User License Agreement  이 있으면 기입 
・「Images」에서 스크린샷을 업로드

(2)  다음으로 한국어로 어플리케이션 정보를 입력
확인 화면에서 View Details」을 선택하고, Manage Localizations」을 클릭해서, 「Add New Language」를 클릭
・「Language」에서 ・「Korean」를 선택
좀 전과 같이 정보를 한국어로 입력

Ready to Upload Binary」 버튼을 클릭

(3) 암호화 기술에 관련되는 질문 화면이 표시 된다면 No」를 선택

(4) Continue」를 클릭해서, 어플의 「Status」가 「Waiting For Upload」가 되는 것을 확인

(5) 등록한 이메일로 Your app status is Waiting For Upload」가 되었 다는 메일이 오는 것을 확인

4.어플을 공개용으로 빌드해서 업로드
(1) Xcode의「PROJECT」의 「Info」의「Configurations」에서「Release」를 복사해서 Distribution」로 이름을 붙이기

(2) Code Signing」의「Distribution」의「Any iOS」을 적절하게 설정하기 (iPhone Distribution
PROJECT」가 아니고「TARGET」쪽에서 설정 했다.

(3) Xcode의 좌상단(스톱 버튼의 오른쪽)의 드롭다운에서 Edit Scheme」을 선택하고, 표시된 다이얼로그의 좌측에서 Archive」를 선택, Build Configuration」에서「Distribution」를 선택 합니다.

(4) Xcode의 좌상단(스톱버튼의 오른쪽)의 드롭다운 리스트에서 iOS 디바이스가 선택되어 있는 것을 확인하고, Product」메뉴의Archive」를 실행 합니다.

(5)  빌드가 완료 되면 「Organizer」가 자동으로 열리므로, 지금 빌드한 아카이브를 선택해서 Validate」버튼을 클릭 합니다.

(6) iTunes Connect 의 유저명과 패스워드 입력

(7) Identify」에 해당되는 것을 선택하고 Next」를 클릭. Validation의 성공이 표시되면 「Finish」 버튼을 클릭.
그러면, 「Organizer」의 Status」에 「Passed Validation」라고 표시가 됩니다.

(8)  계속해서  「Organizer」에서, Submit」버튼을 클릭.

(9)  앞에서 한거랑 똑같이, iTunes Connect 의 유저명 과 패스워드를 확인하고Next」를 클릭

(10)  좀 전과 똑같이, Identify」에 해당하는 것을 선택하고 Next」를 클릭.

(11) 업로드가 완료가 되었다면, Finish」버튼을 클릭. 「Organizer」의 다이알로그의 Status」가 「Submitted」가 된 것을 확인.

(12) iTunes Connect에 로그인 해서, 해당하는 어플리케이션의 Status」가 「Waiting for Review」라고 표시 되어 있는 것을 확인.
심사가 완료되어 공개 되어도 좋은 단계일 경우에는 「Ready for Sale」로 변경됨.

(13) 등록한 이메일 주소로 Your app status is Waiting For Review」라고 하는 메일이 오는 것을 확인.


-------------------------------------------------------------------------------------------------

개인적인 추가 사항
No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=i386, VALID_ARCHS=armv6 armv7)
는 에러가 발생을 한다면 
http://incn.tistory.com/82 를 참고 하시면 됩니다. 

정리가 된 사이트 
http://www.facebook.com/note.php?note_id=153450554720309

정리를 위해 참고한 사이트
Xcode4에서 iPhone 어플리케이션을 iTunes Connect 에 등록하는 방법

iPhone 어플리케이션을 AppStore 로 등록심사 하는 것은?무료 어플편

Xcode4에서 어플을 App Store 로 등록하는 순서

App Distribution with XCode4 _ season 2

출처: http://hiphapis.net/entry/DistributionOnXCode4

XCode4로 업데이트 되면서 App 등록을 시킬려고 했더니.. 이거 뭔가 잘 안된다.
그래서 가볍게 구글링 해봤는데.. 없다. (다들 아는걸 나만 모르고 있었나?;;)
어쩔 수 없이 XCode 페이지에서 Xcode 4 Transition Guide를 살펴보니 끝트머리(96 of 98)에 나와있다.
만약 검색안하고 처음부터 살펴봤으면(물런 그럴일은 없겠지만)... 끔찍하다 -ㅅ-;
뭐 암튼 어떻게 바뀌었는지 정리 한번 해봤다.

과거 App Upload방식의 변경이 웹페이지에서 직접 파일을 업로드 하는 방식에서, File Upload 부분만 Application Loader로 바뀌었었다면. 이번엔 Upload하기 전 과정이 바뀌었는데, Archive(새로 추가됨)를 이용하도록 변경되었다.

어떻게 바뀌었는지 둘러보자.
아참. 웹페이지에서 하던일은 똑같이 해줘야 한다. 순전히 XCode에서의 작업만 변경되었다.

1. Build Configuration, Distribution?
1-1. XCode3에서 넘어온 경우
XCode3에서 Build Configure "Distribution"을 만들어서 사용했던 경우인데, 
 Archive Build Configuration만 변경해줘도 되고 아래 1-2 방법을 사용해도 된다.

Editor에서 Edit Scheme를 클릭


Archive가 Release로 선택되어 있는데, 이를 Distribution으로 변경.

1-2. 새로 프로젝트를 만든 경우 (CodeSign 적용)
 과거에는 Build Configuration에서 Release를 복사해서 Distribution을 만들었었는데 XCode4에서는 어떻게 Distribution을 만드는지 모르겠다.
이런 프로세스 자체가 사라진것 같은데, 개인적인 추측으론 쓸대없이 Distribution만들지말고 Release쓰라고 그런게 아닐까? 한다.
암튼 돌아와서, Release의 CodeSign만 변경해주면 된다.

 
Project Navigator에서 현 프로젝트를 선택한 후 Build Setting 탭으로 이동 (아래 캡쳐에서는 탭이 짤려서 안나온다)
여기서 Release CodeSign을 Distribution용 CodeSign으로 선택

결국 이 과정은 CodeSign을 맞추는 과정이다.
2. Archive
Organizer의 Archives 에 등록을 해야먄 App을 Upload할 수 있다.
현재는 아무것도 없는 상태


Editor로 돌아와서, iOS Device로 시뮬레이터 선택

Product -> Archive를 실행

Archive를 위한 Compiling중.

Compile이 끝나고 Organizer를 확인해보면, Archive한 App이 나타난다.
여기서 Submit 버튼을 누르면 AppStore 등록 프로세스로 넘어간다.


3. App Store에 등록
여기서부터는 과거 Application Loader 방식과 동일하다고 보면 된다.
Organizer에서 Submit을 하면, 로그인창이 나오는데, 개발 계정으로 접속을 하면 된다.

로그인을 하면, Application과 CodeSign이 나오는데, 웹페이지(개발센터)에서 Ready for Upload인 App들만 나온다. (과거와 동일)

Next누르면 Upload가 시작된다.

Upload가 끝나면 이런 화면이 뜨는데..
이슈거리가 있으면 어떤 화면이 뜰지 모르겠다. 인증서가 잘못되면 여기서 걸리지 않을까 추측해본다.

Status를 확인해보면 Submitted라고 나온다.

웹페이지(개발센터)로 가서 한번 확인해보면, "Upload Received"

몇초후 Reload하니 "Waiting For Review"로 status가 변경되었다.


4. 정리

   XCode3 XCode4
 Distribution 만들기 (CodeSign)  1. Info 에서 Release 복사해서 Distribution 타입 만들기.  1. Schema에서 Archive의 Build Type을 Distribution으로 변경 혹은 Release의 CodeSign 변경
 Compile 및 Upload 준비
 2. Distribution으로 Build.
 3. Compress
 2. Product -> Archive
 App Upload
 4. Application Loader를 이용해서 Upload.  3. Organizer -> Submit

Finder왔다갔다 할 필요 없이 XCode내에서 클릭 먗번으로 줄여줬고,
Application Loader를 이용해서 Upload하는 방식은 변하지 않았다.

기타 오류 발생 및 해결 방법 정리
Build Active Architecture Only 설정을 NO로 설정 (Default 값이 NO)
Build할때만 Build Active Architecture Only를 YES로 설정

프로젝트의 Build Setting에서
Target에 Skip Install 설정을 NO로 변경하여야 한다. (단. Main Project의 설정은 YES 이어야 한다.)
UUID mismatch detected with the loaded library...
디바이스와 SDK의 버전이 일치하지 않아서 발생하는 문제 (Xcode를 삭제 후 설치 요망)
배포용 인증서 저장시 오류사항
개발용 인증서와 이름이 같으면 생성이 안된다.
옵티마이저 아케이브 오류사항
com.apple.transporter.util.StreamUtil.readBytes(Ljava/io/InputStream;)[B
Xcode Reinstall
sudo /Developer/Library/uninstall-devtools –mode=all

App Distribution with XCode 4

출처 : http://cafe.naver.com/icaniphone/444

Xcode4에서 인터페이스빌더의 통합과 함께 또한가지의 큰 변화가 앱스토어 제출을 위한 배포판 바이너리 빌드 방법입니다.
간단히 결론부터 말씀드리면 기 존 Xcode3에서 빌드 후 Finder에서 .app 을 .zip 으로 압축하고 Application Loader 로 업로드 하는 과정이 필요 없어졌고, Xcode4에서 Application Loader 필요 없이 쉽게 업로딩 처리까지 가능해 졌습니다. 즉, 이제 Finder에서 빌드된 바이너리가 어디있는지 굳이 알 필요도 없어졌습니다.

이때, Archive 라는 개념이 새로 생겼는데, Archive를 생성하고 앱스토어에 제출하기 위한 방법은 다음과 같습니다.

1. iTunes Connect 에서 앱 정보를 등록하고 Ready for Upload 상태로 만듭니다. (이 과정은 기존과 동일합니다)




2. 프로젝트를 선택한 후 Build Settings의 Code Signing 부분에서 Release 부분에서 Distribution용 Provisioning Profile을 지정해 줍니다.


3. Scheme 에서 목록 제일 아래 있는 Edit Scheme 를 선택합니다.



4. 왼쪽 목록에서 Archive를 선택한 후 다음 화면과 같이 iOS Device와 Release 로 설정되어 있는지 확인 합니다.





5. Product 메뉴에서 Archive를 선택하면 컴파일 및 Archive 생성을 시작합니다.    (이때, 위에서 지정한 Release 설정과 해당 distribution provisioning profile 을 사용하여 빌드가 되는 것입니다)



6. 성공적으로 Archive 생성이 완료되면, Organizer 가 뜨고 다음과 같이 생성된 Archive를 볼 수 있습니다.




7. Validate 버튼을 누르고, iTunes Connect 로그인 정보를 입력합니다.




8. iTunes Connect 에 등록된 앱 정보를 확인하고, 올바른 배포용 Profile을 선택합니다.




9. Validation(검증)이 완료되면 다음과 같은 화면이나옵니다. Finish를 누릅니다.





10. 목록의 오른쪽에 Status를 보시면 Passed Validation(검증통과)라고 표시되어 있습니다. 이제 Submit을 눌러 제출합니다.


11. 성공적으로 업로드가 완료되면 다음과 같이 iTunes Connect에서 Waiting for Review 상태로 바뀐 것을 보실 수 있습니다.




Xcode 4.2 libz.1.2.3.dylib link error

Project >> Target >> Build Phases >> Link Binary With Libraries
Press + under the list and select the libz.dylib then it will add the lib so it will work inbetween SDK updates.