Your SlideShare is downloading. ×
32 osx app_release
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

32 osx app_release

295
views

Published on

Published in: Technology

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
295
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

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

×