[iOS] - Encryption, PushNotification설정

수킴·2022년 1월 31일
0

iOS 

목록 보기
5/12

Encryption

메시지 암호화 전송 - RNCryptor 라이브러리

  • 메시지를 암호화한 후 받을 때 해독하는 방식
    • 🌟 서버에 저장될 때 원본 그대로 저장되는 것이 아닌 암호화된 문자로 저장된다.
  • pod RNCryptor 라이브러리 사용

인코딩과정(암호화)

import RNCryptor

class Encryption {
    
    // 암호화할 메서드
    class func encryptText(keyValue: String, message: String) -> String {
        
        let data = message.data(using: String.Encoding.utf8)
        let encryptedData = RNCryptor.encrypt(data: data!, withPassword: keyValue)
        
        return encryptedData.base64EncodedString(options: NSData.Base64EncodingOptions(rawValue: 0))
    }

}
  1. String → Data타입으로 변경
  2. RNCryptor의 encrypt메서드를 사용하여 암호화된 데이터를 반환합니다.
  3. 암호화된 데이터를 String으로 변환 후 반환합니다.

디코딩과정(복호화)

import RNCryptor

class Encryption {
    class func decryptText(keyValue: String, encryptedMessage: String) -> String {
        
        let decryptor = RNCryptor.Decryptor(password: keyValue)

        let encryptedData = NSData(base64Encoded: encryptedMessage, options: NSData.Base64DecodingOptions(rawValue: 0))

        var message: NSString = ""

        if encryptedData != nil {
            do {
                let decryptedData = try decryptor.decrypt(data: encryptedData! as Data)
                message = NSString(data: decryptedData, encoding: String.Encoding.utf8.rawValue)!
            } catch {
                print("error decrypting text \(error.localizedDescription)")
            }
        }
        
        return message as! String
    }
    
}
  1. 암호화된 메시지를 저장한 password로 복호화합니다.
  2. 암호화된 String을 Data타입으로 변환 후 decrypt메서드로 복호화하여 사용합니다.

Push Notification 푸쉬알림보내기

  • 알림을 받기위해서는 인증서를 받아야 합니다.

인증서 생성과정

  • 순서
    • App ID의 PushNotification서비스 체크
    • APNs 인증서 발급 (Apple Push Notification service)
    • APNs 키 발급
    • xcode 프로젝트에서 PushNotification, BackgroundModes활성화
  1. 애플 개발자 계정사이트로 이동합니다

  • Certificates탭으로 이동합니다.
  1. 이동한 후 Identifiers 탭에서 + 버튼을 클릭하여 새로운 App Id를 생성합니다.

  2. 프로젝트의 Bundle ID를 작성합니다.

  1. 인증서에 필요한 서비스를 선택합니다.

  1. Configure 버튼 클릭후 Create Certificate버튼클릭

  1. 로컬에서 키체인접근을 열어줍니다. - 상단 메뉴에서 인증 기관에서 인증서 요청 클릭





7. 같은 방식으로 ProductionCertificate도 지정합니다. .p12파일 저장

💡 ProductionCertificate를 지정할 때 .certSigningRequest 파일은 다른 파일로 하는 것을 권장합니다.(충돌 예방)

OneSignal

OneSignal이란?

  • OneSignal은 웹 사이트 및 모바일 응용 프로그램을위한 무료 푸시 알림 서비스입니다.
  • 각 플랫폼에 전용 SDK를 제공하여 모든 주요 네이티브 및 모바일 플랫폼을 지원합니다.
  • RESTful 서버 API 및 마케터가 푸시 알림을 디자인하고 보내는 온라인 대시 보드를 제공합니다.

초기설정 - 프로젝트 생성

  1. 새로운 앱 생성 후 플랫폼 선택합니다.

  1. Product .p12파일을 업로드 한 후 비밀번호를 입력합니다.
  2. APNs Configuration 정의
  3. SDK를 설치 한 후, App ID를 저장합니다.

프로젝트 Capability에서 추가

사용방법

  1. pod 'OneSignal' 코코아팟 추가
  2. AppDelegate.swift 에서 초기화
    • 🚨  시뮬레이터에서는 에러가 발생합니다.

참고링크

profile
iOS 공부 중 🧑🏻‍💻

0개의 댓글