SDK 下载和配置

SDK 下载

基本功能 SDK,包含登录支付等基础服务

稳定版(V3.4.9)

iOS SDK 下载:iOS_SDK_V3.4.9

更新说明:

  1. 新增风控SDK;
  2. 新增对外第三方登录、账号删除接口;
  3. 新增自定义UI弹窗资源配置;
  4. 优化SDK内部功能;

灰度版

【如需使用灰度版请和技术对接人员确认】

iOS SDK 下载:iOS_SDK_V3.5.1_beta

更新说明:

  1. 新增日本特商法展示按钮;
  2. SDK内部功能优化;

越南版

【如需使用越南版请和技术对接人员确认】

iOS SDK 下载:iOS_SDK_V3.5.0_beta

更新说明:

  1. 新增越南版SDK功能;
  2. 新增GlobalCoreVNLogin.bundle资源;
  3. 越南版需配置info.plist文件,GlobalVNSDK 为 YES;

环境要求

SDK 相关内容说明
支持平台iPod Touch、iPhone 和 iPad
运行 iOS 系统要求 iOS 11.0 以上
接入使用 Xcode要求版本为 15.4 以上

SDK 包内容

  • SDK 目录说明
└── GlobalSuperUnion
  ├── .h
  │    ├── SDKManager.h : SDK对接使用的类头文件
  │    ├── SDKManager.swift : SDK的配置头文件
  └──.a
  │    ├── libGlobalSuperUnionSDK.a : SDK的静态库文件
  └──.bundle
      ├── GlobalSuperUnionMainResource.bundle : SDK的资源文件
      ├── GlobalCoreResource.bundle : SDK的资源文件
      ├── LineSDKResource.bundle : 三方SDK的资源文件
      ├── NNGSDK.bundle : 三方SDK的资源文件
      └── TwitterKitResources.bundle : 三方SDK的资源文件
      └── DXCaptcha.bundle : 三方SDK的资源文件 【v3.4.9版本及以上】
  └──.framework
      ├── LineSDK.framework : SDK的framework文件
      ├── LEventSDK.framework : SDK的framework文件
      ├── AppsFlyerLib.framework : 三方SDK的framework文件
      ├── FBSDKCoreKit.framework : 三方SDK的framework文件
      ├── FBSDKLoginKit.framework : 三方SDK的framework文件
      ├── FBSDKShareKit.framework : 三方SDK的framework文件
      ├── FBAEMKit.framework : 三方SDK的framework文件
      ├── FBSDKCoreKit_Basics.framework : 三方SDK的framework文件
      ├── FirebaseAnalytics.framework : 三方SDK的framework文件
      ├── FirebaseCore.framework : 三方SDK的framework文件
      ├── FirebaseCoreDiagnostics.framework : 三方SDK的framework文件
      ├── FirebaseCrashlytics.framework : 三方SDK的framework文件
      ├── FirebaseInstallations.framework : 三方SDK的framework文件
      ├── FirebaseInstanceID.framework : 三方SDK的framework文件
      ├── FirebaseMessaging.framework : 三方SDK的framework文件
      ├── FLAnimatedImage.framework : 三方SDK的framework文件
      ├── GoogleAppMeasurement.framework : 三方SDK的framework文件
      ├── GoogleDataTransport.framework : 三方SDK的framework文件
      ├── GoogleUtilities.framework : 三方SDK的framework文件
      ├── nanopb.framework : 三方SDK的framework文件
      ├── NNGSDK.framework : 三方SDK的framework文件
      ├── NaverLogin.framework : 三方SDK的framework文件
      ├── NaverThirdPartyLogin.framework : 三方SDK的framework文件
      ├── PromisesObjC.framework : 三方SDK的framework文件
      ├── Protobuf.framework : 三方SDK的framework文件
      ├── SDWebImage.framework : 三方SDK的framework文件
      ├── TwitterCore.framework : 三方SDK的framework文件
      ├── TwitterKit.framework : 三方SDK的framework文件
      ├── AppLovinSDK.framework : 三方SDK的framework文件
      ├── GoogleMobileAds.framework : 三方SDK的framework文件
      ├── FirebaseSessions.framework : 三方SDK的framework文件
      ├── FBLPromises.framework : 三方SDK的framework文件
      ├── AppAuth.framework : 三方SDK的framework文件
      ├── GoogleSignIn.framework : 三方SDK的framework文件
      ├── GTMAppAuth.framework : 三方SDK的framework文件
      ├── GTMSessionFetcher.framework : 三方SDK的framework文件
      ├── dx-captcha-static.framework : 三方SDK的framework文件 【v3.4.9版本及以上】
      ├── DXRiskStaticWithIDFA.framework : 三方SDK的framework文件 【v3.4.9版本及以上】
   └──Crashlytics
       ├── run : 脚本文件
       ├── upload-symbols : 脚本文件

SDK 导入

注意事项

  1. FirebaseSessions.frameworkFBLPromises.framework 需要移除在 TARGETS - General - Frameworks, Libraries, and Embedded Content 处的引用;
  2. AppLovinSDK.frameworkNaverThirdPartyLogin.frameworkTwitterKit.frameworkAppAuth.frameworkGoogleSignIn.frameworkGTMAppAuth.frameworkGTMSessionFetcher.framework新增设置为 Embed & Sign;
  3. Build Phases - Link Binary With Libraries中将 ReplayKit.frameworkStatus设置为 Optional;
  4. Build Phases - Copy Bundle Resources中 移除 upload-symbols 文件;
  5. 【v3.4.9版本及以上】新增libresolv.tbdlibc++.tbdCoreLocation.frameworkCoreTelephony.framework系统库依赖;
  6. 【v3.4.9版本及以上】需要在info.plist中新增NSLocationWhenInUseUsageDescription定位权限;
  1. 将 SDK 文件引入工程中

    • 如下图,将 SDK 文件选中后,拖到 Xcode 工程中: 文件拖到工程中后,Xcode 会弹出下图提示,按照下图勾选并点击“Finish”:
    iOS_world_img1
    • 文件引进后,在Xcode工程的目录中能看到对应的文件:
    iOS_world_img2
    • 由于文件中包含了 .swift文件,引入时工程会提示是否生成混编桥接文件(如下图),请选择 Create Bridging Header
    iOS_world_img3
    • 文件引进工程后,(注意:FirebaseSessions.frameworkFBLPromises.framework 需要移除在 TARGETS-General-Frameworks, Libraries, and Embedded Content中的引用)

    • 检查 SDK 库文件引用。(正常 SDK 文件引入工程后,Xcode 会自动添加 SDK 库文件引用)

    iOS_world_img4
  2. 在工程的 TARGETS-General-Frameworks, Libraries, and Embedded Content中,将以下 .framework设置为 Embed & Sign

    • NaverThirdPartyLogin.framework
    • TwitterKit.framework
    • AppLovinSDK.framework
    • AppAuth.framework
    • GoogleSignIn.framework
    • GTMAppAuth.framework
    • GTMSessionFetcher.framework
    • 如下图
      iOS_world_img5
  3. 添加系统库:在工程的 TARGETS-General-Frameworks, Libraries, and Embedded Content

└── .framework
├── Accelerate.framework
├── AdSupport.framework
├── AVFoundation.framework
├── CoreGraphics.framework
├── CoreLocation.framework
├── CoreMedia.framework
├── CoreTelephony.framework
├── GameKit.framework
├── iAd.framework
├── libsqlite3.tbd
├── libxml2.tbd
├── libz.tbd
├── MapKit.framework
├── QuartzCore.framework
├── SafariServices.framework
├── StoreKit.framework
├── SystemConfiguration.framework
├── UIKit.framework
├── UserNotifications.framework
├── WebKit.framework
├── AVKit.framework
├── MobileCoreServices.framework
├── MediaPlayer.framework
├── AssetsLibrary.framework
├── Security.framework
├── ImageIO.framework
├── AppTrackingTransparency.framework
├── AudioToolbox.framework
├── CoreMotion.framework
├── Foundation.framework
├── MessageUI.framework
├── ReplayKit.framework
├── libresolv.tbd
├── libc++.tbd
├── CoreLocation.framework
├── CoreTelephony.framework
iOS_world_img6
  1. 从运营提供的参数文档中下载 GoogleService-Info.plist并将 GoogleService-Info.plist文件引进到工程里

    iOS_world_img7
  2. 从运营提供的参数文档中下载 SDKParam.plist并将 SDKParam.plist中的所有参数配置键值对逐一复制到项目的 Info.plist( SDKParam.plist 中只会包含当前游戏所需要的配置,没有提供的参数配置,说明该游戏不需要)

    iOS_world_img8
  3. 在工程的 TARGETS-Signing & Capabilities中新增以下功能

    • Associated Domains
    • Game Center
    • In-App Purchase
    • Sign in with Apple
    • 如下图
      iOS_world_img9
  4. 在工程的 TARGETS-Build Setting中搜索 Other Linker Flags,新增以下配置

    • -ObjC
    • -licucore
    • 如下图
      iOS_world_img10
    • 需要注意的是:如果配置后,显示的值是 <Mutiple values>,则表示可能配置只对真机或模拟器某一方生效,需要调整配置,使效果如上图
    • 如果配置错误,会导致运行时闪退,错误提示如下:unrecognize selector sent to instance: xxx
  5. 崩溃信息收集相关配置

  • 确保 FirebaseCrashlytics.framework文件 和 Crashlytics文件夹 已引进到工程中,并且在 TARGETS-General-Frameworks, Libraries, and Embedded Content位置已包含了 FirebaseCrashlytics.framework文件的引用

  • 在工程的 TARGETS-Build Phases-Run Script中,添加以下执行脚本,如无 Run Script项,请点击左上角 +添加以下两句命令:

    "${PROJECT_DIR}/HaiWaiSDKDemo/GlobalSuperUnion/ThirdFramework/Crashlytics/run"
    "${PROJECT_DIR}/HaiWaiSDKDemo/GlobalSuperUnion/ThirdFramework/Crashlytics/upload-symbols" -gsp"${PROJECT_DIR}/HaiWaiSDKDemo/GlobalSuperUnion/GoogleService-Info.plist" -p ios "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}"
    

    上文的 路径需替换成游戏工程中实际的路径,添加后示例效果如下图:

    iOS_world_img11
  • 在工程的 TARGETS-Build Setting中搜索 Debug Information Format,并设置为 DWARF with dSYM File 如下图:

    iOS_world_img12
  • 完整配置可参照 Demo

  • 配置了崩溃信息收集后,运行和打包的时候都要开启 VPN,Xcode 在执行上述脚本的时候会向 Firebase 上传文件,上传失败时会报错

  1. 在工程的 Build SettingsArchitectures设置为 arm64 如下图:

    iOS_world_img13
  2. 在工程的 Build Setting中设置 Swift Language Version为 swift5

iOS_world_img14
  1. 在工程的 Build Setting中设置 Bitcode 为 NO
iOS_world_img15