Cocos creator资源包:
hippo-ad-sdk-cn-1.0.9.zip

iOS广告SDK:
hippo-sdk-frameworks-1.6.6.zip

Android广告SDK:
hippo-sdk-cn-v1.3.0.zip
hippo-android-cocos-creator-adapter-1.3.zip

更新记录:

Creator版本 iOS版本 android版本 作者 日期 描述
v1.0.0 v1.2.0 v1.0.8 junewong 2019-05-29 支持iOS平台,提供激励视频和banner广告API。
v1.0.1 v1.2.1 v1.0.8 junewong 2019-05-29 支持Android平台,包括四种广告类型;
v1.0.2 v1.2.2 v1.0.9 junewong 2019-05-30 1、iOS平台支持点击回调;
2、iOS平台支持填充和展示错误回调;
3、showVideoAd的接口方法更换为showRewardVideoAd
4、修正一些小问题;
v1.0.2 v1.2.3 v1.0.9 junewong 2019-06-06 1、调整和新增部分打点事件
v1.0.2 v1.2.4 v1.0.9 junewong 2019-06-06 1、将第三方广告sdk从1.9.9.2升级到2.0.1.1版本;
v1.0.3 v1.2.5 v1.0.9 junewong 2019-06-11 1、优化isLoaded方法,增加测试例子;
v1.0.3 v1.2.5 v1.1.0 heyouying 2019-06-12 1、新增小米广告(Banner、RewardVideo)
2、新增服务端下发广告配置的方式;
v1.0.3 v1.2.5 v1.1.1 heyouying 2019-06-13 1、新增弹性聚合不同第三方广告平台特性;
v1.0.3 v1.2.5 v1.1.2 heyouying 2019-06-13 1、修复Banner适配问题
v1.0.3 v1.2.5 v1.1.3 heyouying 2019-06-27 1、增加深度统计渠道配置
v1.0.4 v1.2.9 v1.1.3 junewong 2019-07-04 1、升级iOS第三方sdk到2.1.0.1;
2、开放iOS的插屏和全屏两种广告类型API;
3、iOS的banner广告增加点击关闭特性;
v1.0.5 v1.2.9.1 v1.1.3 junewong 2019-07-11 1、修改回调方式兼容1.x和2.x版本的Creator;
v1.0.5 v1.3.0 v1.1.3 junewong 2019-07-18 1、将第三方iOS广告sdk升级到2.1.0.2;
v1.0.5 v1.3.0 v1.1.4 heyouying 2019-07-19 1、将第三方安卓广告sdk升级到2.1.0.3;
v1.0.5 v1.4.0 v1.1.4 junewong 2019-07-29 1、iOS支持服务端下发配置;
2、banner对iPad做适配;
v1.0.5 v1.4.1 v1.1.4 junewong 2019-08-09 1、将iOS深度统计升级到3.2.1版本;
v1.0.5 v1.4.1 v1.1.5 junewong 2019-08-15 1、安卓升级深度统计到3.3.4版本;
v1.0.5 v1.4.5 v1.1.5 junewong 2019-09-11 1、将第三方广告SDK升级到2.4.6.0;
v1.0.5 v1.4.6 v1.1.5 junewong 2019-09-23 1、清除带有过时UIWebView类的类库;
v1.0.5 v1.5.1 v1.1.5 junewong 2019-10-28 1、新增支持广点通广告平台(平台sdk需要另外导入);
2、升级第三方广告sdk到2.4.6.7;
v1.0.5 v1.5.2 v1.1.5 junewong 2019-10-28 1、iOS调整banner布局;
v1.0.5 v1.5.2 v1.1.5 junewong 2019-11-25 1、将android sdk中的cocos creator适配代码分离独立发布;;
v1.0.6 v1.5.4 v1.1.5 junewong 2019-12-11 1、添加用户反馈功能;
2、更新iOS第三方sdk到2.5.1.5(需要添加Accelerate.framework)
v1.0.6 v1.5.5 v1.1.5 junewong 2019-12-12 1、更改激励和全屏视频广告为默认使用个性化模板展现
v1.0.6 v1.5.5 v1.1.6 junewong 2019-12-13 1.升级安卓第三方广告版本为v2.5.2.6
v1.0.6 v1.5.6 v1.1.6 junewong 2019-12-19 1.增加部分统计信息;
v1.0.6 v1.5.7 v1.1.6 junewong 2020-01-03 1、iOS升级第三方广告sdk到2.7.5.2;
2、iOS修改isLoad的判定规则;
v1.0.6 v1.5.8 v1.1.6 junewong 2020-01-16 1、iOS修正渲染失败后重试的bug;
v1.0.7 v1.5.9 v1.1.6 junewong 2020-02-06 1、iOS增加开屏广告类型;
注意:iOS的framework目录结构有调整,升级建议重新导入;
v1.0.7 v1.6.0 v1.1.6 junewong 2020-02-10 1、iOS兼容使用19年12月5号申请的旧类型广告id;
v1.0.7 v1.6.2 v1.1.6 junewong 2020-02-17 1、iOS增加可切换强制使用本地配置的特性;
v1.0.8 v1.6.2 v1.2.5 junewong 2020-02-19 1、安卓端增加开屏广告类型;
2、安卓新增通过配置控制banner高度;
3、安卓升级注意:依赖配置新增cardview、okhttp等,请对比查看“Android工程接入”
v1.0.9 v1.6.3 v1.2.5 ruansen 2020-03-06 1、iOS端增加信息流广告类型;
2、安卓端增加信息流广告类型;
v1.0.9 v1.6.4 v1.2.5 junewong 2020-03-10 1、iOS端信息流广告展现优化;
v1.0.9 v1.6.4 v1.3.0 ruansen 2020-05-08 1.安卓端增加统计平台开关以及设置统计计划特性;
v1.0.9 v1.6.6 v1.3.0 junewong 2020-06-03 1、iOS增加统计平台开关以及设置统计计划特性;
2、iOS初始化流程的优化;

一、概述

本 SDK 适用于对接中国区内的广告变现平台,通过简单流程即可同时集成高价值广告平台、统计分析工具等,提升接入效率、减少维护成本。

此文档描述在Cocos creator平台上集成SDK的接入流程,可导出iOS和Android工程。

二、准备工作

  1. 下载 HippoSDK 的 Cocos creator的资源包和原生工程的包:

  2. 与河马运营人员获取如下信息:

  • 配置文件hippo-ads-config.json,该json文件包含了广告相关的各种信息,请不要随便修改;
  • 各个聚合广告位的id;
  1. CP发布前提供的材料:
  • 如果有用到数据打的,则提供友盟自定义打点的事件列表以便导入;

三、接入步骤

Cocos creator工程的接入

1、打开Cocos Creator工程,选择文件——资源导入,zip文件路径选择下载好的SDK资源包:

image.png

HippoSDKDemo.fire和HippoSDKDemo.js是Demo的文件,如果不需要可以取消选择不导入。

iOS工程的接入

  1. 从Cocos Creaor将hippo-sdk-frameworks-xxx.zip解压,将其中所有framework导入;

注意导入方式必须是create groups:
image.png

  1. 导入SDK配置文件

将hippo-ads-config.json文件导入到工程的根目录中(json文件名称请不要随意修改):

hippo-ads-config.json

  1. iOS工程运行环境配置

支持环境:

  • 支持系统 iOS 8.X 及以上;
  • SDK编译环境 Xcode 9.4以上, Base SDK 11.1;
  • 支持架构:真机建议arm64以上;

请检查以下工程配置:

a)网络权限配置

存在 SDK API 已经全部支持HTTPS,但是有时广告主素材存在非HTTPS情况。解决办法:

工程plist文件设置,点击右边的information Property List后边的 “+” 展开
添加 App Transport Security Settings,先点击左侧展开箭头,再点右侧加号,Allow Arbitrary Loads 选项自动加入,修改值为 YES。
bu_2.png

b)检查是否存在以下库,如果没有请添加:

工程需要在TARGETS -> Build Phases中找到Link Binary With Libraries,点击“+”,添加下列中缺漏的依赖库:

  • StoreKit.framework
  • MobileCoreServices.framework
  • WebKit.framework
  • MediaPlayer.framework
  • CoreMedia.framework
  • AVFoundation.framework
  • CoreLocation.framework
  • CoreTelephony.framework
  • SystemConfiguration.framework
  • AdSupport.framework
  • CoreMotion.framework
  • libresolv.9.tbd
  • libc++.tbd
  • libz.tbd
  • Accelerate.framework

c)添加“Other Linker Flags”参数:

Build Settings中Other Linker Flags 增加参数-ObjC,SDK同时支持-all_load。

bu_3.png

Android工程接入

  1. 本SDK可运行于Android4.1 (API Level 16) 及以上版本,如若出现AndroidManifest.xml合并冲突问题,请将最小版本改为16

  2. 将hippo_ad_sdk_cn.aar-xxx.zip解压出的aar导入到Android项目中,并配置其依赖,如下图:

1.png

2.png

自动批量导入libs目录下的所有aar文件:

  1. dependencies {
  2. implementation fileTree(dir: 'libs', include: ['*.jar','*.aar'])
  3. implementation 'com.android.support:support-v4:xx.x.x'//根据自己使用的sdk版本选择
  4. implementation 'com.android.support:appcompat-v7:28.0.0'
  5. implementation 'com.android.support:cardview-v7:28.0.0'
  6. implementation 'com.android.support.constraint:constraint-layout:1.1.3'
  7. //准备要支持安卓手机5.x以下的,可以用okhttp:3.12.8。
  8. implementation 'com.squareup.okhttp3:okhttp:3.12.8'
  9. //准备要支持是5.x以上的建议okhttp:4.3.1。
  10. implementation 'com.squareup.okhttp3:okhttp:4.3.1'
  11. }

或者是手动导入libs下的aar组件:
3.png

所有相关依赖如下:

    // 广告相关依赖
    implementation(name: 'hippo-ad-sdk-v1.2.1', ext: 'aar')
    implementation(name: 'bdtracker-3.3.4-alpha.1-pangolin', ext: 'aar')
    implementation(name: 'open_ad_sdk-v2.1.0.3', ext: 'aar')
    implementation(name: 'android-gif-drawable-1.2.6', ext: 'aar')
    implementation(name: 'GameSdk-v102', ext: 'aar')
    implementation(name: 'aweme-open-sdk', ext: 'aar')
    implementation(name: 'alicloud-android-man-1.2.4',ext: 'aar')
    implementation(name: 'hippo-remote-analytics-v1.0.0',ext: 'aar')
    implementation(name: 'hippo-unique-id-v1.0',ext: 'aar')    

    implementation 'com.android.support:support-v4:xx.x.x'//根据自己使用的sdk版本选择
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support:cardview-v7:28.0.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'

    //准备要支持安卓手机5.x以下的,可以用okhttp:3.12.8。
    implementation 'com.squareup.okhttp3:okhttp:3.12.8'
    //准备要支持是5.x以上的建议okhttp:4.3.1。
    implementation 'com.squareup.okhttp3:okhttp:4.3.1'
  1. 将hippo-ads-config.json文件导入到项目的src/main/assets目录中(json文件名称请不要随意修改,目录不存在时自行创建,此路径为Project模式下路径):

src/main/assets/hippo-ads-config.json

  1. 将hippo-android-cocos-creator-adapter-xxx.zip解压出的src/org/cocos2dx/javascript/HippoAdManager.java文件拷贝到项目的 src/org/cocos2dx/javascript 路径下;

  2. Android的SDK需要在Android端AppActivity的onCreate方法中调用setContext方法,如下:

public class AppActivity extends Cocos2dxActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        ......
        // 设置SDK初始化所需的上下文
        HippoAdManager.setContext(this);
    }

    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        ...
        //友盟初始化需要获取IMEI权限
        if (requestCode == HippoAdManager.READ_PHONE_STATE) {

             HippoAdManager.initHippoSDK();

        }
        ...
    }
}
  1. 为了能正常使用统计功能,需要在每个Activity相应生命周期方法中调用我们相对应的API,在Activity的onResume()中调用 HippoAdManager.onAppResume(activity),在Activity的onPause()中调用HippoAdManager.onAppPause(activity); ```java public class AppActivity extends Cocos2dxActivity { ………… @Override protected void onResume() {
     super.onResume();
     HippoAdManager.onAppResume(this);
    
    }

@Override protected void onPause() { super.onPause(); HippoAdManager.onAppPause(this); } ………… }


7. 混淆

```java
# hippo-sdk
-keep class com.hippo.ads.**{*;}
-keep class com.hippo.ads.**
-dontwarn com.hippo.ads.**
-keeppackagenames com.hippo.ads.**

# jrtt-sdk
-keep class com.bytedance.sdk.openadsdk.** { *; }
-keep public interface com.bytedance.sdk.openadsdk.downloadnew.** {*;}
-keep class com.androidquery.** {*;}
-keep class com.androidquery.**
-dontwarn com.androidquery.**
-keeppackagenames com.androidquery.**
-keep class com.ss.android.**{*;}
-keep class com.ss.android.**
-dontwarn com.ss.android.**
-keeppackagenames com.ss.android.**

# umeng-sdk
-keep class com.umeng.commonsdk.**{*;}
-keep class com.umeng.commonsdk.**
-dontwarn com.umeng.commonsdk.**
-keeppackagenames com.umeng.commonsdk.**

四、SDK使用说明:

1、初始化SDK

在游戏启动阶段做sdk的初始化,SDK会自动找寻json配置文件,且自动执行各种初始化操作。
请多留意日志的初始化成功或者失败的提示。

// 测试时可以打开日志模式,上线时请关闭
HippoAdSDK.logMode();

// 初始化SDK
HippoAdSDK.init( ( success ) => {
    // 如果success为true则表示初始化成功,这时可以去加载广告;
    console.log("hippo_sdk", "SDK init, success:" + success );
});

2、激励视频广告

a) 广告请求

使用聚合广告位id,请求对应的广告类型。
注意只需要请求一次即可,以后每当广告被展示或者填充错误,就会自动开始请求填充下一个广告。

// 启用激励视频广告的聚合广告位
// 参数:
//    ids:为聚合广告位id数组,可传入一个或多个广告位id
//    callback: hippoPlacementId:河马聚合广告位id, success:是否填充成功
HippoAdSDK.initRewardedVideoAd([HIPPO_AD_REWARD_ID], ( hippoPlacementId, success ) => {
    console.log("hippo_sdk"," reward id:" + hippoPlacementId + " loaded, success:" + success );
});

b)广告展现

展现激励视频广告,在需要触发广告的时候调用:

// 展示一个激励视频广告
// 展示完成回调参数:
//    success:是否成功
//    errorMessage:失败时的失败信息
//    isRewarded:是否发放激励
HippoAdSDK.showRewardVideoAd( HIPPO_AD_REWARD_ID, ( success, errorMessage, isRewarded ) => { // 展示之后的回调
    if ( success && isRewarded ) {
        // 展示成功和发放奖励
    }
} , () => { // 点击回调
        console.log("hippo_sdk", "reward video clicked." );
});

3、全屏视频广告

a) 广告请求

全屏视频形式与激励视频一致,唯一不同是用户可点击跳过。

// 启用全屏视频广告的聚合广告位
// 参数:
//    ids:为聚合广告位id数组,可传入一个或多个广告位id
//    callback: hippoPlacementId:河马聚合广告位id, success:是否填充成功
HippoAdSDK.initFullScreenVideoAd([HIPPO_AD_FULLSCREEN_ID], ( hippoPlacementId, success ) => {
    console.log("hippo_sdk"," fullscreen id:" + hippoPlacementId + " loaded, success:" + success );
});

b)广告展现

展现激励视频广告,在需要触发广告的时候调用:

// 展示一个全屏视频广告
// 展示完成回调参数:
//    success:是否成功
//    errorMessage:失败时的失败信息
HippoAdSDK.showFullScreenVideoAd( HIPPO_AD_FULLSCREEN_ID, ( success, errorMessage ) => { // 展示之后的回调
    if ( success ) {
        // 展示成功
    }
} , () => { // 点击回调
        console.log("hippo_sdk", "fullScreen video clicked." );
});

4、插屏视频广告

a) 广告请求

插屏广告的形式为一个浮层小窗口的形式。

// 启用插屏广告的聚合广告位
// 参数:
//    ids:为聚合广告位id数组,可传入一个或多个广告位id
//    callback: hippoPlacementId:河马聚合广告位id, success:是否填充成功
HippoAdSDK.initInterstitialAd([HIPPO_AD_INTERSTITIAL_ID], ( hippoPlacementId, success ) => {
    console.log("hippo_sdk"," fullscreen id:" + hippoPlacementId + " loaded, success:" + success );
});

b)广告展现

展现激励视频广告,在需要触发广告的时候调用:

// 展示一个全屏视频广告
// 展示完成回调参数:
//    success:是否成功
//    errorMessage:失败时的失败信息
HippoAdSDK.showInterstitialAd( HIPPO_AD_INTERSTITIAL_ID, ( success, errorMessage ) => { // 展示之后的回调
    if ( success ) {
        // 展示成功
    }
} , () => { // 点击回调
        console.log("hippo_sdk", "Interstitial ad clicked." );
});

5、Banner广告

a)广告请求

// 启用Banner广告的聚合广告位,默认为底部展现,高度为100像素
// 参数:
//    ids:为聚合广告位id数组,可传入一个或多个广告位id
//    填充完成回调参数:
//         hippoPlacementId:河马聚合广告位id
//         success:是否填充成功
HippoAdSDK.initBannerAd([HIPPO_AD_BANNER_ID], ( hippoPlacementId, success ) => { // 展示之后的回调
    console.log("hippo_sdk"," banner id:" + hippoPlacementId + " loaded, success:" + success );
} , () => { // 点击回调
        console.log("hippo_sdk", "reward video clicked." );
});

b)广告展现

在需要展现各个广告的页面,准备好回调方法:

// 显示指定的Banner
// 展示完成回调参数:
//    success:是否成功
//    errorMessage:失败时的失败信息
HippoAdSDK.showBannerAd( HIPPO_AD_BANNER_ID, ( success, errorMessage ) => {
    // 回调处理
});

// 隐藏指定的Banner
HippoAdSDK.hideBannerAd( HIPPO_AD_BANNER_ID );

5、开屏广告

用于在游戏启动和游戏开始之间,展示一个全屏的启动页广告,默认是3秒后自动消失。

广告填充并展示

**

// 显示指定的开屏广告(不带回调)
HippoAdSDK.initAndShowSplashAd( HIPPO_AD_BANNER_ID );

如果需要回调:

// 显示指定的开屏广告(带回调)
// 提供三个回调,分别是:
//    填充回调:广告填充后返回
//    展示回调:广告展示并消失后返回
//    点击回调:用户点击广告返回
HippoAdSDK.initAndShowSplashAd( HIPPO_AD_SPLASH_ID, ( hippoPlacementId, success ) => {
  console.log("hippo_sdk", " splash id:" + hippoPlacementId + " loaded, success:" + success );

}, ( success, errorMessage ) => {
  console.log("hippo_sdk", " splash shown, success:" + success + ", message:" + errorMessage );

}, () => {
  console.log("hippo_sdk", " splash clicked" );

});

6、信息流广告

a)广告请求

//信息流广告请求
// 参数:
//    ids:为聚合广告位id数组,可传入一个或多个广告位id
//    填充完成回调参数:
//         hippoPlacementId:河马聚合广告位id
//         success:是否填充成功
//                 width:广告宽度
//                 height:广告高度
HippoAdSDK.initNativeExpressAd([HIPPO_AD_NATIVEEXPRESS_ID], width, height, ( hippoPlacementId, success, errorMessage ) => {
  console.log("hippo_sdk", " nativeExpress id:" + hippoPlacementId + " loaded, success:" + success + ", errorMessage:" + ( errorMessage || "" ) );
});

//设置信息流广告位置
// 参数:
//    HIPPO_AD_NATIVEEXPRESS_ID:为聚合广告位id
//    填充完成回调参数:
//         x:广告在x轴的位置(手机的左上角为起点)
//         y:广告在y轴的位置
HippoAdSDK.setNativeExpressPosition(HIPPO_AD_NATIVEEXPRESS_ID, x, y);

b)广告展现

// 显示指定的信息流
// 展示完成回调参数:
//    success:是否成功
//    errorMessage:失败时的失败信息
HippoAdSDK.showNativeExpressAd( HIPPO_AD_NATIVEEXPRESS_ID, ( success, errorMessage ) => { // 展示回调
            console.log("hippo_sdk", "show nativeExpress success:" + success );

        }, () => { // 点击回调
            console.log("hippo_sdk", "cocos showHippoNativeExpressAd clicked." );
        });

// 隐藏指定的信息流广告
HippoAdSDK.hideNativeExpressAd( HIPPO_AD_NATIVEEXPRESS_ID);

7、判断广告填充

判断某个广告位的是否已经填充了广告:

// 判断广告是否已填充
// 参数:
//    id: 单个聚合广告位id
if ( HippoAdSDK.isLoaded( HIPPO_AD_REWARD_ID ) ) {
    // 确认广告已填充之后的逻辑
}

8、数据打点

SDK提供数据的打点功能,目前主要是打在友盟的自定义事件中。

注意:友盟的自定义事件, 需要事先在后台创建对应的自定义事件。

// 数据打点
// 参数:
//    eventName:事件名称
//    params:事件参数,必须是key-value的对象,可选
HippoAdSDK.sendEvent( "test_event_name", {"parma1" : "value1", "param2" : "value2"} );

9、用户反馈功能

弹出一个对话框询问用户是否喜欢游戏,如果喜欢则走评分流程,如果不喜欢则走用户反馈流程;
注意:该功能当前只支持iOS平台;

HippoAdSDK.showRatingsOrFeedbackView();

五、问题反馈

Android问题

1、导入aar后报路径过长的问题,如下图所示:

1.png

解决方案:将Cocos导出的项目路径配置到D盘根目录

  1. 如若报以下某方法找不到等错误,请进行如下配置:

微信图片_20190428163926.png

需要在build.gradle中配置两个地方:

  • 配置合并方式

    android {
      ...
      defaultConfig {
          ...
          multiDexEnabled true
          ...
      }
      ...
    }
    
  • 添加依赖

    implementation 'com.android.support:appcompat-v7:28.0.0'
    

iOS问题反馈

5.1 发布后被拒,提示“Missing Purpose String in Info.plist File -”

只是2019年春季后新策略,使用到的权限需要全部在Info.plist文件中声明(没有最好也是声明一下)。
比如少了NSBluetoothPeripheralUsageDescription,那就在Info.plist上加上NSBluetoothPeripheralUsageDescription一项,value则填写“App需要您的同意,才能访问蓝牙 ”。
其他常用权限也可以参考:https://www.jianshu.com/p/36c9b1081c07

建议使用:

    <!-- 相册 -->
    <key>NSPhotoLibraryUsageDescription</key>
    <string>游戏需要您的同意,才能访问相册</string>
    <key>NSPhotoLibraryAddUsageDescription</key>
    <string>游戏需要您的同意,才能保存图片到您的相册</string>
    <!-- 相机 -->
    <key>NSCameraUsageDescription</key>
    <string>游戏需要您的同意,才能访问相机</string>
    <!-- 麦克风 -->
    <key>NSMicrophoneUsageDescription</key>
    <string>游戏需要您的同意,才能访问麦克风</string>
    <!-- 位置 -->
    <key>NSLocationUsageDescription</key>
    <string>游戏需要您的同意,才能访问位置</string>
    <!-- 在使用期间访问位置 -->
    <key>NSLocationWhenInUseUsageDescription</key>
    <string>游戏需要您的同意,才能在使用期间访问位置</string>
    <!-- 始终访问位置 -->
    <key>NSLocationAlwaysUsageDescription</key>
    <string>游戏需要您的同意,才能始终访问位置</string>
    <!-- 日历 -->
    <key>NSCalendarsUsageDescription</key>
    <string>游戏需要您的同意,才能访问日历</string>
    <!-- 提醒事项 -->
    <key>NSRemindersUsageDescription</key>
    <string>游戏需要您的同意,才能访问提醒事项</string>
    <!-- 蓝牙 -->
    <key>NSBluetoothPeripheralUsageDescription</key>
    <string>游戏需要您的同意,才能访问蓝牙</string>
    <!-- 媒体资料库 -->
    <key>NSAppleMusicUsageDescription</key>
    <string>游戏需要您的同意,才能访问媒体资料库</string>

5.2 出现存在某些库不支持bitcode的提示

建议在设置中将bitcode关闭:

image.png