32 osx app_release
-
Upload
allting-kim -
Category
Technology
-
view
328 -
download
1
Transcript of 32 osx app_release
37장
애플리케이션 배포하기
빌드 설정
❖ 디버그 빌드는 개발 시스템 아키텍처(32, 64bit)에 맞는 바이너리 생성.!
❖ 디버깅에 유용.!
❖ 빌드 시간 단축.
릴리즈 빌드
❖ 배포를 위한 빌드.!
❖ 최적화.!
❖ 디버깅 심볼 제거.!
❖ 모든 아키텍처(32, 64bit)에 대해 바이너리를 빌드.
전처리 매크로
❖ NSAssert 사용하지 않기 위해 NS_BLOCK_ASSERTIONS 매크로 정의.!
❖ 타켓 | Build Settings | Preprocessor Macros [그림 37.2]!
❖ <<ProjectName>>_Prefix.pch 에 보통 정의.
릴리즈 빌드 만들기
❖ Product | Archive 통해 생성.!
❖ 아카이빙 기능!
❖ 애플리케이션의 다양한 릴리즈 빌드를 분류!
❖ 디버그 심벌 유지
인스톨러❖ 인스톨러를 만들지 말라.!
❖ 앱을 다운로드 폴더에서 /Application 으로 드래그 & 드롭.!
❖ 앱을 Zip 으로 압축 이용.!
❖ DMG 파일 이용.!
❖ readme 파일, /Application 링크 추가.!
❖ 맥 앱스토어에는 인스톨러를 사용할 수 없다.
샌드박싱(Sandboxing)
❖ 앱이 시스템을 손상하지 않는다는 것을 신뢰할 수 있는 경우.!
❖ 신뢰할 수 있는 앱의 버그로 인하여 시스템 손상이 발생하는 경우.
권한(Entitlements)
❖ 앱이 할 수 있는 것에 대한 권한을 명시.!
❖ OS는 해당 액션만을 허용.
파워박스(Powerbox)
❖ NSOpenPannel, NSSavePannel 을 통해 파일을 선택.!
❖ 파워박스라는 시스템 데몬에 의해 파일 접근.!
❖ 코드 수정이 필요하지 않다.!
❖ 앱 종료시 다시 문서를 복원하거나,Open Recent 메뉴 선택시 비슷한 기능 제공.
맥 앱 스토어(Mac App Store)
❖ MAS 이용시 앱구입, 인스톨, 패키징, 배포, 라이선스등을 고민하지 않아도 된다.!
❖ 샌드박스 환경에서 동작하지 않거나, 리뷰 가이드라인을 따르지 않는다면 전통적인 방식.!
❖ iOS 동일하게 바이너리에 서명, 앱 설명, 스크린샷을 만들고 앱 제출, 리뷰받는다.
영수증 확인
❖ iOS 처럼 운영체제 차원에서 라이선스를 확인을 지원하지 않는다.!
❖ 불법 복제를 막을려면 영수증 확인 코드를 구현해야 함.
영수증
❖ 앱 구입시 앱은 사용자 시스템에 복사.!
❖ 앱 영수증을 포함하는 파일은 앱 번들안에 위치.!
❖ 영수증에는 번들 확인자, 버전, 컴퓨터 GUID 해쉬 포함됨.!
❖ 애플은 이 영수증을 암호화해서 서명함.
영수증 확인 과정
❖ 영수증이 존재하는지 확인.!
❖ 애플이 영수증에 서명했는지 확인.!
❖ 영수증의 번들 확인자가 일치하는지 확인.!
❖ 버전 확인자가 일지 하는지 확인.!
❖ 영수증의 컴퓨터 해쉬값이 컴퓨터의 GUID 해쉬와 일치하는지 확인.
영수증 확인
❖ 앱 번들에 plist 파일에 존재하는 값은 수정될 수 있으므로 따로 저장해야 함.!
❖ 영수증 확인에 실패하면 173 리턴 값으로 앱 종료해야 함.if(!validated) exit(173);!
❖ 애플에서 전체 소스를 제공하지 않음.단순 복사되어 크랙되는 것을 막기 위해.
영수증 확인 기타❖ 애플 또는 기타 코드 검색후 반드시 수정해서 적용.!
❖ 인라인, goto, exception, 암호화, 여러번 확인 등등등…!
❖ ITC 에서 테스트 계정을 만들고, 생성된 앱을 실행, (173 종료) 애플 로그인창 실행,테스트 계정 및 암호 입력.!
❖ 영수증 발급후 버전등이 변경되면 로그아웃(부팅)후 다시 테스트 영수증 발급.