다운된 파일을 압축 해제하면 다음과 같은 파일이 확인 가능하고 이중 아래에 선택된 3개의 파일을 분석 대상 앱 프로젝트에 추가합니다.
프로젝트 선택후 마우스 우클릭, Add Files to 메뉴를 선택합니다.
앞에서 다운로드 받고, 압축 해제한 폴더에 들어가서 아래와 같이 추가 대상 파일을 선택하고, 화면 아래쪽 설정은 존재하는 모든 target에 포함되었는지 확인후 추가 하면 됩니다.
BuildSetting 에 아래와 같이 설정을 추가합니다.
xcode 가 12.3 이후 버전이고 빌드 과정에서 아래와 유사한 오류가 발생하는 경우가 있으며,
위의 경우에는 아래와 같이 설정을 하고, 빌드를 하면됩니다.
CocoaPod을 사용하지 않을경우, Firebase 수동 설정은 아래의 Firebase 공식 document를 참고하여 수동으로 프로젝트에 추가해 주세요.
dotAuthorizationKey 등록
info.plist 파일을 Open As Source Code 방식으로 오픈한 후, 아래 코드를 추가합니다.
<key>dotAuthorizationKey</key><dict> <key>serviceNumber</key> <string>xxxxx</string> >>> 서비스 번호 확인 후 변경 <key>expireDate</key> <string>14</string> <key>isDebug</key> <string>true</string> <key>isInstallRetention</key> <string>true</string> <key>isFingerPrint</key> <string>true</string> <key>accessToken</key> <string></string> <key>useMode</key> <string>2</string></dict>
추가한 코드 중 serviceNumber의 value를 올바른 값으로 변경해야 합니다.
와이즈트래커 대시보드에 로그인하여 설정 > 서비스설정 메뉴에서 '서비스번호' 항목에 기재된 숫자를 확인 후 복사하여 serviceNumber 값을 변경 해 주세요.
HTTP 통신 허용
이 내용은 Wisetracker 기본 SDK가 이미 적용된 경우에는 새로 적용할
필요가 없습니다. 메시징 서비스만 이용하는 경우 참조해주세요.
http통신을 허용하기 위해 NSAppTransportSecurity 를 아래와 같이 추가합니다.
이전과 마찬가지로 info.plist 파일을 Open As Source Code 방식으로 오픈한 후, 아래 코드를 추가합니다.
👉 iOS13 이상이어도 SceneDelegate를 사용하지 않을 수도 있어요, 이 때에는 위의 SceneDelegate를 사용하지 않는 경우를 참조하세요.
SceneDelegate의 sceneDidBecomeActive함수에 SDK를 Initialization하기 위한 코드를 다음과 같이 적용합니다. SDK가 정상적으로 초기화 되었을 때 아래와 같은 기본 분석이 가능합니다.
앱 실행 및 방문수, 일/주/월순수방문수 등 방문과 관련된 지표
통신사, 단말기, 국가 등 방문자의 단말기 환경으로 부터 추출될 수 있는 지표
importDOTimportFirebaseclassSceneDelegate:UIResponder, UIWindowSceneDelegate {...funcsceneDidBecomeActive(_scene: UIScene) {// 등록 토큰을 수신하기 위한 SDK구성 FirebaseApp.configure()// =======================================================// Wisetracker 기본 SDK가 이미 적용된 경우에는 새로 적용할 필요가 없습니다.// 메시징 서비스만 이용하는 경우 참조해주세요.// =======================================================// Start : Wisetracker SDK 호출 DOT.initialization(nil, application: UIApplication.shared) #if DEBUG DOT.checkDebugMode(true) #else DOT.checkDebugMode(false) #endif// E: Wisetracker SDK init }...}
#import <DOT/DOT.h>
#import <Firebase.h>
@implementation SceneDelegate
...
- (void)sceneDidBecomeActive:(UIScene *)scene {
...
...
// 등록 토큰을 수신하기 위한 SDK구성
[FIRApp configure];
// =======================================================
// Wisetracker 기본 SDK가 이미 적용된 경우에는 새로 적용할 필요가 없습니다.
// 메시징 서비스만 이용하는 경우 참조해주세요.
// =======================================================
// Start : Wisetracker SDK 호출
[DOT initialization:nil application:[UIApplication sharedApplication]];
#ifdef DEBUG
[DOT checkDebugMode:true]
#else
[DOT checkDebugMode:false]
#endif
// End : Wisetracker SDK 호출
}
...
@endo
이미지 푸시메시지 적용 (선택사항)
Notification Service Extension Target 추가
이미지를 포함한 푸시메세를 수신받기 위해 필요합니다.
File - New - Target 메뉴에서 "Notification Service Extension"을 선택합니다.
Product Name에 타겟명을 입력합니다. (아래에서 Podfile에 target을 추가할때 사용할 타겟명입니다)
추가 완료 후 NotificationServiceExtension 폴더가 생성됩니다.
Podfile 수정
Podfile에 아래와 같이 앱의 타겟 안에 이미지 푸시를 위한 타겟을 추가한 후 pod install 명령어를 실행시켜 줍니다.
Podfile
target 'wisetracker' do
...
# S: Wisetracker SDK add
pod 'RW', '~> 1.1.45'
pod 'Firebase/Messaging'
# E: Wisetracker SDK add
...
# =======================================================
#Start : 이미지 푸시 수신을 위한 추가
#=======================================================
target ‘NotificationServiceExtension’ do
# 프레임워크를 동적으로 링크하는것이 권장되오나, 앱에 따라 정적으로 링크하는 경우,
# 앱의 프레임워크 링크방식과 동일하게 사용 해 주세요. 아래의 방식은 정적으로 링크하는 경우입니다.
# use_frameworks! >>>>>>>>> 동적의 경우일때 사용
use_frameworks! :linkage => :static
# Wisetracker SDK 의 버전이 명시되어 있는 경우 동일하게 버전을 명시 해 주세요.
pod 'RW', '~> 1.1.45'
pod ‘FirebaseMessaging’, :modular_headers => true
end
#=======================================================
#End : 이미지 푸시
#=======================================================
...
...
end
위의 "NotificationServiceExtension"은 고객사에서 만든 타켓명으로 해주셔야 합니다.
예시는 타겟명이 "NotificationServiceExtension"인 경우입니다.
'sharedApplication' is unavailable: not available on iOS (App Extension) - Use view controller based solutions where appropriate instead.
target 'wisetracker' do
...
post_install do |installer|
react_native_post_install(
installer,
...
...
)
...
############### App Extension 에러 발생시 추가 ######################
# 앱 확장이 iOS 기능과 라이브러리에 자유롭게 액세스할 수 있게 설정.
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings[‘APPLICATION_EXTENSION_API_ONLY’] = ‘NO’
end
end
###################################################################
end
# S: Wisetracker SDK add
pod 'RW', '~> 1.1.45'
pod 'Firebase/Messaging'
# E: Wisetracker SDK add
...
...
end
NotificationService 수정
NotificationService 파일을 열어 아래의 내용으로 대체해 주세요.
* 기존 내용을 모두 삭제하고 아래 내용으로 대체하는것이며, 추가가 아님에 유의 해 주세요.
프레임워크 추가시 앱의 프레임워크 방식과 동일하게 작성될 수 있도록 한번 더 체크 해 주세요. (동적 or 정적)
Wisetracker SDK 버전이 명시되어 있다면, 동일하게 버전이 명시되어 있는 형태로 추가했는지 체크 해 주세요.
Podfile에 이미지 푸시를 추가하였으나 아래와 같은 에러가 발생된다면 아래의 앱 확장 코드를 추가 해 주세요.
NotificationService 파일에서FirebaseMessaging 모듈이 없다는 에러 발생시 Notification Service Extension 타겟의 빌드 설정에서 "Header Search Paths" 항목을 확인하고 Firebase Messaging 헤더 파일이 포함된 디렉토리가 있는지 확인하세요.