---
code: cocoscreator_sdk_native
name: "Native支持"
wikiToken: YyDnwL9tZiX37ukCSxJcxdTVnHa
parentWikiToken: RvASwF6gWieCFIkqqRlchH0xnUg
updateTime: 1763019462000
sourceUrl: https://docs-v2.thinkingdata.cn/?version=v5.0&lan=zh-CN&code=cocoscreator_sdk_native
---
# Native支持

### 一、iOS Native 支持

首次构建 iOS 项目会生成工程代码到 `./build/ios/` 和 `./native/engine/ios/` 两个目录，然后开始配置 iOS 工程。

#### **1.1 手动配置**

- 添加 iOS 工程依赖文件 
- `CocosCreatorProxyApi.h`
- `CocosCreatorProxyApi.mm`
- `ThinkingSDK.framework` 
- `ThinkingDataCore.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 配置**

::: tip 提示：

 `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
    ${CMAKE_CURRENT_LIST_DIR}/../common/Classes/ThinkingAnalytics/ios/ThinkingDataCore.framework
)
```

- Build Phases 设置
```
# 找到这行代码 
target_link_libraries(${LIB_NAME} cocos2d)
# 添加以下代码
target_link_libraries(${LIB_NAME} ${CMAKE_CURRENT_LIST_DIR}/../common/Classes/ThinkingAnalytics/ios/ThinkingSDK.framework)
target_link_libraries(${LIB_NAME} ${CMAKE_CURRENT_LIST_DIR}/../common/Classes/ThinkingAnalytics/ios/ThinkingDataCore.framework)
```

- Build Settings 设置
```
# 找到这行代码
set(PRODUCT_NAME ${APP_NAME})
# 添加以下代码
set(CMAKE_EXE_LINKER_FLAGS -ObjC)
```

::: warning 注意

Cocos Creator v2.x 的编辑器暂不支持 `CMake` 配置方式，需要手动配置。

:::

### 二、 Android Native 支持

构建 Android 项目工程, 配置 Android 工程。

- 在 Android 显示模式的 app 工程中，把依赖文件 `CocosCreatorProxyApi.java` 加入到 `com.cocos.game` 中，如下图 
- 在项目的 app 文件夹中的 proguard-rules.pro 文件中，添加混淆
```
-keep public class com.cocos.game.CocosCreatorProxyApi {*;}
```

- 在项目的 app 文件夹中新建 libs 目录，将 `TDAnalytics.aar`、`TDCore.aar` 拷贝到其中 
- 在 `Module` 下的 `build.gradle` 文件中添加依赖项
```
dependencies {
    ...
    implementation fileTree(dir: 'libs', include: [**'*.aar'**])
}
```

### 三、 OpenHarmony Native 支持

首先构建OpenHarmony工程

- 将TDAnalytics.har和CocosCreatorProxyApi.ts放到下面的目录中
- 在oh-packages.json5文件中引入SDK
```
"@thinkingdata/analytics": "file:./libs/TDAnalytics.har"
```

- 在build-profile.json5引入桥接文件
```
arkOptions: {
  runtimeOnly: {
    sources: [
      './src/main/ets/CocosCreatorProxyApi.ts',
    ],
  },
}
```

- 引入context
目前CocosCreator支持鸿蒙的第一个版本，交互是在work线程，暂时没有官方的api获取context，后续等官方更新，目前可以通过自己手动添加

上面的操作是将context传递到work线程中，然后在SDK初始化的时候需要用

如果有其他的方式去获取context，也可以自己修改CocosCreatorProxyApi.ts文件中的initWithConfig方法

### 四、 开启 Native 支持

初始化 SDK 时，在 `config` 中加入 `enableNative: true`，即可开启 Native 支持。

```
// TA SDK 配置对象
var config = {
   appId: "YOUR_APPID", // 项目 APP ID
   serverUrl: "YOUR_SERVER_URL", // 上报地址
   enableNative: true,// 允许调用 Native 代码
   autoTrack: {
      appShow: true, // 自动采集 启动事件
      appHide: true, // 自动采集 关闭事件
      appCrash: true, // 自动采集 崩溃事件（仅 native 生效）
      appInstall: true // 自动采集 安装事件（仅 native 生效）
   }
};
// 初始化
TDAnalytics.init(config);
```
