1.接入须知

1.接入龙图iOSSDK的游戏及应用的iOS客户端开发者。
2.使用此文档内接口,需要先接入龙图iOSSDK(详情查看龙图iOSSDK文档)。
3.接入龙图iOSSDK后,需要配置依游SDK需要的依赖库。

注:本文为依游 iOS终端SDK接入教程,只涉及SDK的使用方法,默认读者已经熟悉Xcode开发工具的基本使用方法,以及具有一定的编程知识基础等。注意:在接入EUSDK前,跟EUSDK对接方确定给定的参数是否属于测试渠道的参数。

1.0 开发要求


  • iOS 9.0 及以上版本

  • XCode 13 及以上版本

  • 1.1 申请你的AppID

    1. <key>EUSDK</key>
    2. <dict>
    3. <key>Channel</key>
    4. <string>"填入渠道提供的参数"</string>
    5. <key>ChannelName</key>
    6. <string>ceshi</string>
    7. <key>EUAppId</key>
    8. <string>"填入渠道提供的参数"</string>
    9. <key>EUAppKey</key>
    10. <string>"填入渠道提供的参数"</string>
    11. <key>EUServerUrl</key>
    12. <string>https://api.eusdk.com</string>
    13. <key>Plugins</key>
    14. <array>
    15. <dict>
    16. <key>CName</key>
    17. <string>ceshi</string>
    18. </dict>
    19. </array>
    20. </dict>
    21. 以上参数以我司提供的参数文档为准,没有提供的参数保持不变
    22. 如果是需要上架appstore的正版游戏,请联系EUSDK
    23. 以上参数格式可以参考demo

    提供的测试渠道参数格式如下:
    1、EU_APPID: xxxx
    2、EU_APPKEY: xxxxxxxxxxx
    3、EU_Channel: xxxxxxx
    4、服务端appSecret: xxxxxx(服务端用,可忽略)
    将提供参数替换info.plist对应的值
    注:不需要去修改ChannelName, CName

    1.2 下载SDK包和示例Demo

    下载对应demo

    1.3 开发环境配置

    1.3.1 framework导入

    需要引入的系统库
    库名称 SDK 备注
    libc++.tbd
    libz.tbd
    libsqlite3.tbd
    CoreTelephony.framework
    SystemConfiguration.framework
    Security.framework
    libLT_EUSDK.a
    EUSDKCore.framework

    *EUSDK需要在Framework选择 embed&sign

    EUSDK 要加入在 Embed Framework

    1.3.2 Build Setting设置

    在Target->Build Settings -> Other Linker Flags中添加-ObjC, 字母o和c大写。

    1.4 打包工具

    由于CP方的游戏资源不能对外公开,iOS版的正式渠道游戏接入,一般由EUSDK提供打包工具(已对接好的指定渠道SDK资源包),由CP方接入EUSDK后,测试渠道调试正常,直接用打包工具出。
    打包工具和文档地址:https://www.yuque.com/ys_sdk/eusdkv2/nes935

    1.5 打开相册和相机权限

    NSPhotoLibraryUsageDescription
    App需要您的同意才能访问相册
    NSPhotoLibraryAddUsageDescription
    此 App 需要您的同意才能读取媒体资料库
    NSCameraUsageDescription
    App需要您的同意才能使用照相机

    1.6 打开后台通知和推送通知(可选)

    如果需要打开推送功能,配置Xcode
    选择target->Capabilities
    1,打开Background Modes,勾选Remote notifications
    2,打开Push Notifications

    2.SDK初始化

    接入龙图BaseSDK初始化即可

    3 功能接入

    3.1 生命周期 (必接)

    EUSDK 默认实现了UIApplicationDelegate的所有方法,请在您的应用内AppDelegate各个UIApplicationDelegate方法里调用龙图SDK的生命周期方法,
    如果需要打开推送功能(可选),请在您的应用内AppDelegate各个UNUserNotificationCenterDelegate方法里调用龙图SDK的UNUserNotificationCenterDelegate方法
    具体可以参考demo.

    接口说明
    需结合龙图SDK文档综合接入
    OC 版本接口

    1. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    2. [[LTGameOCSDK shareInstance] LTSDKApplication:application didFinishLaunchingWithOptions:launchOptions];
    3. return YES;
    4. }
    5. - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken{
    6. [[LTGameOCSDK shareInstance] LTSDKApplication:application didRegisterForRemoteNotificationsWithDeviceToken:deviceToken];
    7. }
    8. - (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error{
    9. [[LTGameOCSDK shareInstance] LTSDKApplication:application didFailToRegisterForRemoteNotificationsWithError:error];
    10. }
    11. - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
    12. [[LTGameOCSDK shareInstance] LTSDKApplication:application didReceiveRemoteNotification:userInfo fetchCompletionHandler:completionHandler];
    13. }
    14. - (void)userNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(UNNotificationPresentationOptions))completionHandler {
    15. [[LTGameOCSDK shareInstance] userNotificationCenter:center willPresentNotification:notification withCompletionHandler:completionHandler];
    16. }
    17. - (void)userNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void (^)(void))completionHandler {
    18. [[LTGameOCSDK shareInstance] userNotificationCenter:center didReceiveNotificationResponse:response withCompletionHandler:completionHandler];
    19. }
    20. - (void)applicationWillResignActive:(UIApplication *)application {
    21. [[LTGameOCSDK shareInstance] LTSDKApplicationWillResignActive:application];
    22. }
    23. - (void)applicationDidEnterBackground:(UIApplication *)application {
    24. [[LTGameOCSDK shareInstance] LTSDKApplicationDidEnterBackground:application];
    25. }
    26. - (void)applicationWillEnterForeground:(UIApplication *)application {
    27. [[LTGameOCSDK shareInstance] LTSDKApplicationWillEnterForeground:application];
    28. }
    29. - (void)applicationDidBecomeActive:(UIApplication *)application {
    30. [[LTGameOCSDK shareInstance] LTSDKApplicationDidBecomeActive:application];
    31. }
    32. - (void)applicationWillTerminate:(UIApplication *)application {
    33. [[LTGameOCSDK shareInstance] LTSDKApplicationWillTerminate:application];
    34. }
    35. - (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{
    36. return [[LTGameOCSDK shareInstance] LTSDKApplication:application handleOpenURL:url];
    37. }
    38. - (BOOL)application:(UIApplication *)application openURL:(nonnull NSURL *)url options:(nonnull NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
    39. return [[LTGameOCSDK shareInstance] LTSDKApplication:application openURL:url options:options];
    40. }
    41. - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
    42. return [[LTGameOCSDK shareInstance] LTSDKApplication:application openURL:url sourceApplication:sourceApplication annotation:annotation];
    43. }
    44. - (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window {
    45. return [[LTGameOCSDK shareInstance] LTSDKApplication:application supportedInterfaceOrientationsForWindow:window];
    46. }

    C++版本接口

    1. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    2. LTGameSDK::GetInstance().ApplicationDidFinishLaunchingWithOptions(application, launchOptions);
    3. return YES;
    4. }
    5. - (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken{
    6. LTGameSDK::GetInstance().DidRegisterForRemoteNotificationsWithDeviceToken(application, deviceToken);
    7. }
    8. - (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error{
    9. LTGameSDK::GetInstance().DidFailToRegisterForRemoteNotificationsWithError(application, error);
    10. }
    11. - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
    12. LTGameSDK::GetInstance().DidReceiveRemoteNotificationAndFetchCompletionHandler(application, userInfo, completionHandler);
    13. }
    14. - (void)userNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(UNNotificationPresentationOptions))completionHandler {
    15. LTGameSDK::GetInstance().UserNotificationCenterWillPresentNotificationWithCompletionHandler(center, notification, completionHandler);
    16. }
    17. - (void)userNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void (^)(void))completionHandler {
    18. LTGameSDK::GetInstance().UserNotificationCenterDidReceiveNotificationResponseWithCompletionHandler(center, response, completionHandler);
    19. }
    20. - (void)applicationWillResignActive:(UIApplication *)application {
    21. LTGameSDK::GetInstance().ApplicationWillResignActive(application);
    22. }
    23. - (void)applicationDidEnterBackground:(UIApplication *)application {
    24. LTGameSDK::GetInstance().ApplicationDidEnterBackground(application);
    25. }
    26. - (void)applicationWillEnterForeground:(UIApplication *)application {
    27. LTGameSDK::GetInstance().ApplicationWillEnterForeground(application);
    28. }
    29. - (void)applicationDidBecomeActive:(UIApplication *)application {
    30. LTGameSDK::GetInstance().ApplicationDidBecomeActive(application);
    31. }
    32. - (void)applicationWillTerminate:(UIApplication *)application {
    33. LTGameSDK::GetInstance().ApplicationWillTerminate(application);
    34. }
    35. - (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{
    36. return LTGameSDK::GetInstance().HandleOpenURL(url);
    37. }
    38. - (BOOL)application:(UIApplication *)application openURL:(nonnull NSURL *)url options:(nonnull NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
    39. return LTGameSDK::GetInstance().HandleOpenURL(app,
    40. url,
    41. [options valueForKey:@"UIApplicationOpenURLOptionsSourceApplicationKey"],
    42. [options valueForKey:@"UIApplicationOpenURLOptionsAnnotationKey"]);
    43. }
    44. - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
    45. return LTGameSDK::GetInstance().HandleOpenURL(application, url, sourceApplication, annotation);
    46. }
    47. - (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window {
    48. return LTGameSDK::GetInstance().ApplicationSupportedInterfaceOrientationsForWindow(application, window);
    49. }

    3.2展示闪屏

    EUSDK会根据您要对接的渠道,提供能否显示闪屏功能,请根据API返回值自行判断处理渠道是否支持闪屏,该接口在初始化之后调用。

    接口说明

    1. c++接口
    2. //展示闪屏,返回NO表示渠道不支持
    3. bool showSplash();
    4. oc接口
    5. //展示闪屏,返回NO表示渠道不支持
    6. - (BOOL)LTSDKShowSplash;

    3.3 隐藏闪屏

    接口说明

    1. c++接口
    2. //隐藏闪屏,,返回NO表示渠道不支持
    3. bool dismissSplash();
    4. oc接口
    5. //隐藏闪屏,,返回NO表示渠道不支持
    6. - (BOOL)LTSDKDismissSplash;

    4 常见问题

    https://www.yuque.com/ys_sdk/eusdkv2/qpifdu