# Native 지원
# 1. iOS Native 지원
iOS 프로젝트를 처음 빌드할 때, 엔지니어링 코드가 ./build/ios/
및 ./native/engine/ios/
디렉토리에 생성되고, iOS 프로젝트의 구성이 시작됩니다.
# 1.1 수동 설정
- iOS 프로젝트의 종속 파일 추가
- CocosCreatorProxyApi.h
- CocosCreatorProxyApi.mm
- ThinkingSDK.framework
- Build Phases 설정
- Link Binary With Libraries에 ThinkingSDK.framework 추가
- Build Settings 설정
- Framework Search Paths에 ThinkingSDK.framework 추가의 인용 경로, 예: "$(SRCROOT)/../Classes"
- Other Linker Flags에 -ObjC 추가
# 1.2 CMakeList 설정
::: 팁
CMakeList
파일 경로는 ./native/engine/ios/CMakeLists.txt
입니다; iOS 프로젝트를 처음 빌드한 후, CMakeList
파일이 생성되고 구성 후에 다시 빌드하면 활성화됩니다. 처음에 iOS 리소스 파일을 ./native/engine/common/Classes/ThinkingAnalytics/ios/
등 해당 폴더에 복사하고, CMakeList
를 구성할 때 해당 경로를 입력해야 합니다.
:::
- iOS 프로젝트 종속 파일 추가
# 아래 코드를 찾습니다
set(PROJ_COMMON_SOURCES
${CMAKE_CURRENT_LIST_DIR}/../common/Classes/Game.h
${CMAKE_CURRENT_LIST_DIR}/../common/Classes/Game.cpp
# 아래 코드를 추가합니다
${CMAKE_CURRENT_LIST_DIR}/../common/Classes/ThinkingAnalytics/ios/CocosCreatorProxyApi.h
${CMAKE_CURRENT_LIST_DIR}/../common/Classes/ThinkingAnalytics/ios/CocosCreatorProxyApi.mm
${CMAKE_CURRENT_LIST_DIR}/../common/Classes/ThinkingAnalytics/ios/ThinkingSDK.framework
)
- Build Phases 설정
# 아래 코드를 찾습니다
target_link_libraries(${LIB_NAME} cocos2d)
# 아래 코드를 추가합니다
target_link_libraries(${LIB_NAME} ${CMAKE_CURRENT_LIST_DIR}/../common/Classes/ThinkingAnalytics/ios/ThinkingSDK.framework)
- Build Settings 설정
# 아래 코드를 찾습니다
set(PRODUCT_NAME ${APP_NAME})
# 아래 코드를 추가합니다
set(CMAKE_EXE_LINKER_FLAGS -ObjC)
::: 주의
Cocos Creator v2.x 에디터는 CMake
구성 방법을 지원하지 않으므로, 수동으로 구성해야 합니다.
:::
# 2. Android Native 지원
Android 프로젝트를 빌드하고, Android 프로젝트를 구성합니다.
- 아래와 같이 Android 표시 모드의 앱 프로젝트에서, 종속 파일
CocosCreatorProxyApi.java
를com.cocos.game
에 추가합니다.
- 프로젝트의 app 폴더에 있는 proguard-rules.pro 파일에서, 난독화를 추가합니다.
-keep public class com.cocos.game.CocosCreatorProxyApi {*;}
- 프로젝트의 app 폴더에 libs 디렉토리를 새로 만들고,
ThinkingSDK.aar
를 그곳에 복사합니다. Module
의build.gradle
종속성 파일에 추가합니다.
dependencies {
...
implementation fileTree(dir: 'libs', include: ['*.aar'])
}
# 3. Native 지원 활성화
SDK를 초기화할 때, config
에 enableNative: true
를 추가하여 네이티브 지원을 활성화합니다.
// SDK config object
var config = {
appId: "YOUR_APPID", // APP ID
serverUrl: "YOUR_SERVER_URL", // server URL
enableNative: true // call Native code 활성화
};
// TE instance 생성
var te = new ThinkingAnalyticsAPI(config);