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