menu
Is this helpful?

# 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.javacom.cocos.game에 추가합니다.

  • 프로젝트의 app 폴더에 있는 proguard-rules.pro 파일에서, 난독화를 추가합니다.
-keep public class com.cocos.game.CocosCreatorProxyApi {*;}
  • 프로젝트의 app 폴더에 libs 디렉토리를 새로 만들고, ThinkingSDK.aar를 그곳에 복사합니다.
  • Modulebuild.gradle 종속성 파일에 추가합니다.
dependencies {
    ...
    implementation fileTree(dir: 'libs', include: ['*.aar'])
}

# 3. Native 지원 활성화

SDK를 초기화할 때, configenableNative: 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);