Channel Developers

ChannelIO iOS SDK(이하 SDK)는 Swift / Objc로 작성된 애플리케이션에 실시간 상담 채팅 모듈을 쉽게 설치할 수 있는 플러그인입니다. 웹뷰 안이나 모바일 웹에 설치하고자 하는 경우는 JavaScript SDK 설치 가이드를 참고합니다.

SDK를 사용하기 위한 최소 요구사항은 다음과 같습니다.

  • 채널톡 유료 플랜

  • Swift 5.0 이상

  • ChannelIO SDK 10.0.0 이상

  • 최소 지원 버전:

    • SDK v12.4.1 이상 - iOS 15

    • SDK v.12.4.0 이하 - iOS 12

Swift Package Manager, CocoaPods, Carthage 를 통해 ChannelIO를 설치할 수 있습니다.

Privacy manifest에 대하여

iOS SDK는 v11.5.0 버전 이상부터 PrivacyInfo.xcprivacy를 SDK 내에 포함하고 있습니다. Privacy manifest 파일이 필요한 경우 해당 버전 이상을 사용해야 합니다.

Swift Package Manager를 이용하여 SDK를 설치할 수 있습니다. Xcode 11 버전 이상이 필요합니다.

  1. Xcode의 네비게이터로 이동하여, 프로젝트 중 패키지를 설치할 프로젝트를 선택합니다. Swift Package 탭으로 이동하여, + 버튼을 클릭합니다.

  1. 아래의 ChannelIO 의 패키지 주소를 입력합니다. 버전을 설정한 뒤, Add Package 버튼을 클릭합니다.

Plaintext
https://github.com/channel-io/channel-talk-ios-framework

CocoaPods를 이용하여 ChannelIO iOS SDK를 설치할 수 있습니다. CocoaPods 1.10.0 버전 이상이 필요합니다.

  1. 프로젝트의 Podfile에 아래와 같이 ChannelIOSDK를 추가합니다.

Ruby

특정 패키지 버전을 설치하는 경우는 스크립트 중간의 latest를 특정 버전으로 변경합니다. 예시는 다음과 같습니다.

Ruby
  1. Podfile 이 위치한 디렉토리에서 pod install 커맨드를 실행하여 패키지를 설치합니다.

  2. Project_Name.xcworkspace을 열어 사용합니다.

Carthage를 이용하여 ChannelIO iOS SDK를 설치할 수 있습니다.

  1. 프로젝트의 Cartfile에 아래와 같이 ChannelIOSDK를 추가합니다.

Plaintext
binary "https://mobile-static.channel.io/ios/latest/channeliosdk-ios.json"
  1. Cartfile 이 위치한 곳에서 아래 커맨드를 이용하여 패키지를 설치합니다.

Plaintext
carthage update --platform iOS --use-xcframeworks
  1. PROJECT_DIR/Carthage/build 폴더 안에 다운로드된 패키지를 Xcode로 드래그하여 추가합니다. 아래 사진을 참고합니다.

SDK를 사용하기 위해 다음과 같은 권한이 필요합니다. info.plist 에 아래 권한에 따른 설명을 추가합니다.

Key

Value

Privacy-Camera Usage Description

Accessing the camera to provide a better user experience

Privacy-Photo Library Additions Usage Description

Accessing the photo library to provide a better user experience

Privacy-Microphone Usage Description

Accessing the microphone to record voice for video

SDK 버전이 10.0.7 미만 또는 iOS 최소 버전이 13 미만일 경우 아래의 권한을 추가합니다.

Key

Value

Privacy-Photo Library Usage Description

Accessing to photo library in order to save photos

채널톡 사용이 필요한 곳에서 SDK를 import 합니다.

Plaintext
import ChannelIOFront
Plaintext
#import <ChannelIOFront/ChannelIOFront-swift.h>

SDK 사용을 위해 초기화가 필요합니다. AppDelegate.swiftapplication(_:didFinishLaunchingWithOptions) 메소드에 initialize를 선언합니다.

Swift
Objective-C

만약 SceneDelegate.swift 에서 window를 관리하는 경우, scene(_:willConnectTo:options:) 메소드 안에 아래 ChannelIO.initializeWindow 메소드를 추가합니다.

Swift
Objective-C

Boot 는 SDK를 사용하기 위해 필요한 정보를 로드하는 과정입니다. 부트를 성공한 이후에는 SDK의 기능을 사용할 준비를 마칩니다.

부트에는 플러그인 키가 필요합니다. 플러그인 키는 채널톡 웹 데스크에서 플러그인 키를 얻어내는 방법을 참고하여 준비합니다. Boot 는 두가지 종류로, 익명의 유저로 부트하거나, 멤버 유저로 부트할 수 있습니다. 유저에 대한 자세한 설명은 멤버 유저를 참고합니다.

익명 유저 란, memberId가 부여되지 않은 유저입니다. 아래는 익명의 유저로 Boot 한 뒤, Boot의 결과값을 받는 예시입니다.

Swift
Objective-C

Boot 의 메소드 파라미터인 CHTBootConfig 에는 pluginKey를 포함하여 몇가지 부트 옵션을 제공합니다.

멤버 유저 란, memberId 가 부여된 유저입니다. 만약 로그인 되어있는 상태와 같이 자체적으로 유저를 구분할 수 있는 경우에는 memberId를 부여하여 멤버 유저로 부트합니다. 채널톡은 memberId를 이용하여 각 유저를 구분합니다.

CHTProfile 모델을 이용하여, 유저에게 추가적인 정보를 주입할 수 있습니다.

보안을 위해서 멤버 해시 사용을 권장합니다

만약 아이디, 이메일과 같은 예측 가능한 값으로 memberId를 설정할 경우 인증되지 않은 제3자가 memberId를 유추할 수 있습니다. 이 경우 제3자가 고객의 개인 정보나 채팅 내역을 탈취할 수 있는 등 보안 위협에 노출될 수 있습니다. 보안을 위해서 멤버 해시를 설정하는 것을 권장합니다.

아래는, 특정 MEMBER_ID 를 가진 멤버 유저를 부트하는 예시입니다.

Swift
Objective-C

동일한 사람이라고 판단되는 유저는 합쳐질 수 있습니다

익명 유저 상태에서 멤버 유저로 부트를 하는 경우 채널톡이 같은 유저라고 판단할 수 있는 합리적인 근거가 있다면 채팅 목록과 같은 유저 정보를 합칠 수 있습니다. 더 자세한 내용은 고객 정보 통합하기를 참고합니다.

부트 과정에는 인터넷 연결이 필요하므로, 약간의 시간이 소요될 수 있습니다. 만약 채널톡 부트가 완료된 후에 특정한 작업이 필요하거나, 부트가 실패한 상황에 처리해야 하는 작업이 있다면 BootCallback 을 활용할 수 있습니다.

Swift
Objective-C

부트 상태에 관한 정보는 CHTBootStatus 를 참고합니다.

BootStatus 사용 시 주의사항

ChannelIO.showMessenger나 ChannelIO.showChannelButton과 같이 SDK 화면을 표시하는 함수를 부트 상태(BootStatus)를 확인하여 선별적으로 호출하지 마세요.

SDK는 해당 기능들에 대해 내부적으로 부트 상태를 확인합니다. 12.14.0 버전부터는 향후 업데이트로 인해 현재 SDK 버전이 더 이상 지원되지 않을 경우, SDK가 자동으로 사용자에게 적절한 안내 화면을 제공합니다. 만약 이 함수들을 선별적으로 호출하면 이러한 필수적인 사용자 경험이 제공되지 않아, 지원 중단 버전을 사용하는 고객의 경험을 해칠 수 있습니다.

Swift

SDK는 사용자가 메신저를 띄울 수 있도록 채널 버튼을 제공하고 있습니다. showChannelButtonhideChannelButton 을 호출하여 채널 버튼을 나타내거나 숨길 수 있습니다.

다른 방법으로 메신저를 띄우거나, 채널 버튼의 UI를 변경하고자 하는 경우에는 커스터마이징 하기를 참고합니다.

Swift
Objective-C

track을 통한 이벤트 트래킹이나 푸시 알림만 사용하고자 할 때 사용할 수 있습니다. 채팅 상담이나 마케팅 팝업과 같은 기능이 작동하지 않습니다.

Plaintext
ChannelIO.sleep()

SDK의 모든 기능을 사용 중지합니다. 만약 SDK의 기능을 다시 사용하기 위해서는 다시 부트해야 합니다.

Swift
Objective-C