企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
> 注:本文为iOS终端EUSDK的新手使用教程,只涉及教授SDK的使用方法,默认读者已经熟悉XCode开发工具的基本使用方法,以及具有一定的编程知识基础等。 ## <br/>**1. 关于iOS版接入** 由于CP方的游戏资源不能对外公开,iOS版的游戏接入,一般由EUSDK提供已对接好的指定渠道SDK资源包,由CP方接入后,直接打渠道包。 在CP方与EUSDK技术对接之前,请先联系商务,洽谈合作事宜。 ## <br/>**2. 使用步骤** ##### **2.1 环境** SDK支持iOS 9.0及以上操作系统,支持armv7、arm64处理器。 ##### **2.2 集成** 添加SDK依赖库 * 将 Demo 中 SDK 文件夹中的库全部导入工程 添加系统依赖包 ```ObjectiveC SystemConfiguration.framework, UIKit.framework, Foundation.framework, CoreMotion.framework, UMPush.framework UMCommon.framework UserNotifications.framework libc++.1.tbd libz.1.2.5.tbd libsqlite3.0.tbd SystemConfiguration.framework UIKit.framework ImageIO.framework CFNetwork.framework CoreTelephony.framework libz.tbd * `Security.framework` * `libz.dylib`或`libz.tbd` * `libc++.dylib`或`libc++.tbd` libsqlite3.tbd QuartzCore.framework MobileCoreServices.framework ImageIO.framework libiconv.tbd CoreText.framework CoreTelephony.framework CoreLocation.framework CoreGraphics.framework CFNetwork.framework AVFoundation.framework AdSupport.framework ``` 在要使用到融合SDK API的地方导入头文件 ```ObjectiveC #import <EUSDKCore/EUSDKCore.h> ``` ##### **2.3 Info.plist配置** ```ObjectiveC <key>EUSDK</key> <dict> <key>Channel</key> <string></string> <key>ChannelName</key> <string>jiujiuliu</string> <key>EUAppId</key> <string></string> <key>EUAppKey</key> <string></string> <key>EUServerUrl</key> <string>https://api.eusdk.com</string> <key>EUTimer</key> <true/> <key>EUPush</key> <false/> <key>EUPushKey</key> <string>5c887e403fc1956a1a000ca6</string> <key>Plugins</key> <array> <dict> <key>CName</key> <string>jiujiuliu</string> <key>Direction</key> <string></string> <key>ClientKey</key> <string></string> <key>ClientID</key> <string></string> <key>APPID</key> <string></string> </dict> </array> 以上参数以我司提供的参数文档为准,没有提供的参数保持不变 EUTimer参数是上报用户在线情况的开关,默认开启,配置为YES,如需关闭,请配置成NO。 可选参数:EUPush/EUPushKey EUPush是友盟推送功能开关,支持通知栏消息与应用内消息 如果需要开启,将EUPush值配置为YES,配置EUPushKey; EUPush为NO,则无须EUPushKey配置。 以上参数格式可以参考demo ``` ##### **2.3.1 mchannelinfos.plist配置** 将*****获取必要参数**得到的参数填入清单文件中对应的**plist****信息配置的值**中即可。关于**渠道分包**的设置以及关于**第三方平台参数配置**的设置(只需要设置需要的参数,不需要的可以删除或者为空):在项目根目录下创建mchannelinfos.plist文件,键值内容如下 ```ObjectiveC <key>promote\_id</key> <string>0</string> <key>promote\_account</key> <string>自然注册</string> <key>game\_name</key> <string>盛世龙城之雄霸沙巴克(IOS版</string> <key>game\_appid</key> <string>D1A81A85C4FB22699</string> <key>game\_id</key> <string>0</string> <key>game\_key</key> <string>0</string> <key>requestURL</key> <string>0</string> <key>weixinAppId</key> <string>0</string> <key>QQAppId</key> <string>0</string> <key>MCHScheme</key> <string>0</string> <key>Secret\_key</key> <string>0</string> <key>ISCross</key> <string>YES</string> <key>Secret_key</key> <string>YES</string> <key>New item</key> <string>com.tianqigame.kuaiwanGame</string> ``` ##### **2.4 添加URL Types** ```ObjectiveC id :EUScheme Scheme: 游戏名称(例:zhengbatianxia) id :EUReferer: Scheme: 游戏名称 *.sdkweb.eusdk.com (例:zhengbatianxia.sdkweb.eusdk.com) Scheme: com.tianqihuyu.游戏名称 (例:com.tianqihuyu.-0000000potq3) ``` ![](https://img.kancloud.cn/19/15/191512d1b021bce1e26d33a95dbad2cc_495x225.png) ##### **2.5 http设置** ```ObjectiveC NSAppTransportSecurity中NSAllowsArbitraryLoads设置成YES ``` ##### **2.6 build setting设置** ```ObjectiveC other Linker Flags添加-ObjC Enable Bitcode设置NO ``` ##### **2.7 添加白名单** ```ObjectiveC wechat, weixin, alipay, alipays, ``` ##### **2.8 打开相册和相机权限** ```ObjectiveC NSPhotoLibraryUsageDescription App需要您的同意才能访问相册 NSPhotoLibraryAddUsageDescription App需要您的同意才能访问相册 NSCameraUsageDescription App需要您的同意才能使用照相机 ``` ##### **2.9 打开后台通知和推送通知(可选)** ```ObjectiveC 如果需要打开推送功能,配置Xcode 选择target->Capabilities 1,打开Background Modes,勾选Remote notifications 2,打开Push Notifications ``` ##### **2.9.1 build版本设置** ```ObjectiveC target -> General -> Identity中设置build版本,必须是递增纯数字 ``` ## <br/>**3.接口API说明** > API中用到的全局定义 > ```ObjectiveC //Session失效通知 kEUSessionExpiredNotificationName; //各种操作回调 EUCallback --> void(^)(NSDictionary *userInfo,NSError *error); //获取EUSDK实例 [EUSDK sharedInstance] ``` ##### **3.1 (必接)应用生命周期** EUSDK 默认实现了UIApplicationDelegate的所有方法,请在您的应用内AppDelegate各个UIApplicationDelegate方法里调用EUSDK的UIApplicationDelegate方法,具体可以参考demo ```ObjectiveC //AppDelegate.h //eg: - (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{ return [[EUSDK sharedInstance] application:application handleOpenURL:url]; } ``` **备注:** 如果需要打开推送功能,请在您的应用内AppDelegate各个UNUserNotificationCenterDelegate方法里调用EUSDK的UNUserNotificationCenterDelegate方法,具体可以参考demo ##### <br>**3.2 (必接)登录/登出** ```ObjectiveC //EUSDK.h //(必接*)Session失效通知, 收到通知时退出游戏到登录界面 FOUNDATION_EXPORT NSString *const kEUSessionExpiredNotificationName; //(*必接)登录 - (void)login:(EUCallback)completion; //(*必接)退出 - (void)logout:(EUCallback)completion; //切换账号,返回NO表示渠道不支持 - (BOOL)switchAccount; ``` ##### **3.3 (必接)闪屏** EUSDK会根据您要对接的渠道,提供能否显示闪屏功能,请根据API返回值自行判断处理渠道是否支持闪屏,**该接口在初始化之后调用** ```ObjectiveC //EUSDK.h //展示闪屏,返回NO表示渠道不支持 - (BOOL)showSplash; //隐藏闪屏,,返回NO表示渠道不支持 - (BOOL)dismissSplash; ``` **备注:App Store版本不需要接入闪屏;越狱版才需要接入** ##### **3.4 (必接)游戏数据同步** 在应用各个时机调用些API,同步上送各种类型数据,数据类型如下: | EUExtensionDataType | 数据类型 | | --- | --- | | EUExtensionDataType_CREATEROLE | 创建角色 | | EUExtensionDataType_ENTERGAME | 进入游戏 | | EUExtensionDataType_LEVELUP | 升级 | | EUExtensionDataType_EXITGAME | 退出游戏 | ```ObjectiveC //EUSDK.h - (void)syncData:(EUExtensionData *)data completion:(void(^)(NSDictionary *userInfo,NSError *error))completion; ``` ##### **参数说明** - **data** `EUExtensionData` 实例对象, 需要同步的数据,请根据要同步的数据类型,设置`dataType`,具体参数请对照`EUExtensionData.h` ,请提供尽可能多的参数以适配多渠道 - **completion** 操作完成回调,可以在此回调中做一些处理,比如隐藏进度条 ##### **3.5 显示个人中心** 当此API返回NO时,表示当前接入的渠道不支持此功能,请自行处理业务逻辑 ```ObjectiveC //EUSDK.h //显示个人中心,返回NO表示渠道不支持 - (BOOL)showAccountCenter; ``` ##### **3.5 (必接)支付** 在调用支付时,请确保完成了3.1的接入。 由于为了规避AppStore的一些审核机制,此API使用了`xxx`这样的命名 ```ObjectiveC //EUSDK.h //支付,网页支付时,没有回调 - (void)xxx:(EUProductInfo *)productInfo completion:(EUCallback)completion; ``` ##### **参数说明** - **productInfo** 支付信息`EUProductInfo` 实例对象,具体参数请对照`EUProductInfo.h` ,请提供尽可能多的参数以适配多渠道 > ```ObjectiveC > 备注: > * 如果支付回调地址是后台配置,接口中就不需要传入 > * 支付金额至少1元 > ``` <br> - **completion** 支付完成回调,可以在此回调中做一些处理,比如隐藏进度条等; 当客户端没有安装支付宝时,进入H5页面支付时,不会收到此回调; 微信支付也不会收到此回调;请以服务端结果为准。 _ _ _ 至此,你已经能使用EUSDK的API内容了。如果想更详细了解每个API的用法,请阅读**SDK Demo**源码。 <br><br>