iOS Push 알림(사내 학습용)

4624 단어 Push 알림iOS

iOS 푸시 알림 복습


iOS Remote notification의 provisioning 프로필,build configuration 주위 설정에 대해 다시 복습하고 싶습니다.

설정



사진 출판
Dev Center의 설정 및 Provider, Client Apps 설치

Client App

  • Bundle ID (CFBundleIdentifier)
  • APNs entitlements (aps-environment)
  • Background mode (UIBackgroundModes)
  • Background Fetch를 사용하는 경우 remote-notification
  • 추가
  • 애플 구현
  • 장비 토큰의 수령
  • Remote Notification의 제어점
  • 애플 프로그래밍 안내서대로 Xcode에서 작업하면 기본적으로 문제가 없습니다.
    밀착점
  • Debug/Release 빌딩에서entitlements로 전환:http://qiita.com/Takumi_Mori/items/11b8d00f73163d890b24
  • 알림의 제어점은 Deprecated delegate method 구현: http://qiita.com/komitake/items/c9fbc6aecad404e71e5d
  • Dev Center

  • Certificate (iOS Distribution, iOS Development)
  • Remote Notification 특유의 말이 아니라면
  • 구축된 기계에 대해 Certficate와 Preivetkey 두 가지가 필요하다
  • 당사 내에서 한동안 Admin 권한이 있는 사람이 Xcode 때문에 인증서를 무단으로 제출할 수 있음
  • App ID
  • Remote Notification을 사용하려면 Explicit App ID
  • 가 필요합니다.
  • Push Notifications enabled
  • 애플 Push Services의 Certificate(Sandbox or/and Production)
  • App ID에 연결
  • Sandbox/Production의 차이는 뒤에 서술
  • 이 인증서를 사용하여 애플의 APNs 서버와negotiate
  • 새 HTTP/2 기반 APNs Provider API를 사용할 때 Certficate 대신 Key-Pir를 사용합니다
  • 밀착점
  • 모든 Development/Distribution Env 중 하나만Push Notifications를enabed로 만들 수 있음(잠시 후 설명)
  • Provider

  • 생성된 APNs Certificate를 서버에 배치
  • 이 통지를 이용하여 추진 통지
  • 이상의 설정을 한 후에 알림을 전송하는 동작을 확인하기 위해 모든 Build Configuration과 Environment에 적당한 조합이 필요합니다.

    Developer Program

  • Standard Program
  • 앱스토어에 보낼 수 있는 쪽
  • Enterprise Program
  • 기업 사용자(불특정 다수)에게 앱스토어 이외에 배포할 수 있는 곳은 이쪽
  • 본사

    Provisioning Profile

  • Development
  • 일반 개발 시 사용
  • Distribution
  • 포장 배포용
  • App Store, Ad Hoc, In House 3종
  • Distribution profile
    용도
    단말기 제한
    App Store
    AppStore, TestFlight 출시
    없음(TestFlight 제한 있음)
    Ad Hoc
    사내 테스트 등
    Dev Center를 통한 개별 등록(최대 100개의 터미널)
    In House
    사내 테스트, 사내 이용 등
    없음

    APN 환경

  • Development
  • 개발 환경
  • 도sandbox환경
  • 이라고도 불린다
  • Production
  • 실제 작업 환경
  • 각 환경마다 호스트 이름이 다릅니다.
    (이전 APNs 끝점) Dev/Prod에서 사용된 SSL 인증서는 다릅니다.

    테스트 환경(TestFlight)


    iTunes Connect(즉, 환경) 에서 테스트 발표 (즉, App Store에서 공개적으로 사용되는 바이너리 정보) 를 실시한다.
    터미널에 TestFlight 애플리케이션을 설치하여 AppStore 없이 애플리케이션을 설치합니다.
  • Internal Test
  • iTunes Connect 사용자
  • 최대 25명
  • 상기 제한으로 인해 테스트 인원은 등록하기 어렵다
  • External Test
  • TestFlight 앱 사용자는 누구나 초대할 수 있다
  • 깨끗이 정리하다


    공급하다
    구축
    APN 환경
    절차.
    테스트 배포
    Development
    Debug
    Development
    Standard, Enterprise
    개발 용도만 USB 디버깅 등
    Ad Hoc
    Release
    Production
    Standard, Enterprise
    Dev Center에서 지정한 터미널만 OTA 등을 통해 배포
    In House
    Release
    Production
    Enterprise
    무제한 OTA 등으로 배포
    App Store
    Release
    Production
    Standard
    AppStore, TestFlight
    어느 것을 쓸지 결정할 때 주의해야 돼요.
  • 같은 구축에서 같은 BundleID 응용 프로그램은 여러 프로비에서 압력 알림을 동시에 받을 수 없습니다
  • 애플 버전과 AdHoc 버전은 서로 다른 BundleID
  • 를 사용한다.
  • APN 환경이 혼합된 경우 Provider(응용 서버)는 SSL 인증서를 구분해서 사용해야 한다
  • 추천의 구성

  • 개발 시작 시 Development
  • 단, 어플리케이션 서버의 Prod 환경에 연결하지 않음
  • APN 환경(장치 토큰이나 사용할 SSL 인증서 등)의 혼합을 방지하기 위해
  • 사고를 방지하기 위해 서비스에 들어간 후 APN의 유효한 프로비를 무효로 설정하는 것이 좋습니까?
  • 사내 테스트는 In House
  • AppStore 및 BundleID 변경
  • 테스트 인원과 터미널의 증감에 일일이 대응할 필요가 없고 영업사원과 파트너에게 쉽게 배포할 수 있다
  • 수탁안건에서 고객의 Enterprise 프로그램 계좌를 빌릴 수 있음
  • 출시 전 TestFlight 필요
  • AppStore와 동일한 환경에서 테스트 가능
  • 수탁안건에서 고객의 Standard 프로그램에서 TestFlight를 사용하도록 조정하여 발행 전에 테스트
  • 좋은 웹페이지 즐겨찾기