# 客户端 FAQ(国内)


# Android 相关

# gradle 版本以及Android 编译版本相关问题:

  1. AAPT: error: attribute android:requestLegacyExternalStorage not found
    • 解决:升级工程的编译版本到>=29

# Unity游戏相关:

  1. 游戏拉起登录等弹框后回到后台 或从三方登录取消登录 再切回游戏 游戏黑屏问题解决办法

    https://cloud.tencent.com/developer/article/1761950

  2. sdk弹框内的输入框内容在输入时显示不全的问题解决办法:

    检查AndroidManifest.xml的主activity是否设置了关闭硬件加速开关。是的话则开启即可:

    android:hardwareAccelerated="true"

  3. Unity安卓隐私政策合规修改,如何解决APP一打开,就会自动获取安卓ID的问题?

    参考:https://zhuanlan.zhihu.com/p/651879300

# gshare的录屏功能配置项:

  • 在低版本的android工程中编译时有报错:attribute android:foregroundServiceType not found

    • 如果游戏使用的targetVersion 版本<=28 则不用设置该项属性
    • 如果游戏使用的targetVersion 版本>=29 则修改 compileSdkVersion 版本>=29即可
  • 出包时报错重复库:Duplicate class androidx.XXX found in modules XXX.jar (androidx.XXX) and XXX(android-support-v4.jar)

    • gradle.properties中关闭androidX :

      android.useAndroidX=false
      android.enableJetifier=false


# iOS 相关

# 问题1.接口调用之后没有回调

  • 常见原因1

    调用接口的对象在调用之后被内存被释放,导致没有回调。建议此类写成单例,以下单例常规写法

static Singleton* _instance = nil;
+ (instancetype)shareInstance {
    static dispatch_once_t onceToken ;
    dispatch_once(&onceToken, ^{
        _instance = [[super allocWithZone:NULL] init] ;
        //不是使用alloc方法,而是调用[[super allocWithZone:NULL] init] 
        //已经重载allocWithZone基本的对象分配方法,所以要借用父类(NSObject)的功能来帮助出处理底层内存分配的杂物
    }) ;
    return _instance ;
    }

 //用alloc返回也是唯一实例
+(id) allocWithZone:(struct _NSZone *)zone {
    return [Singleton shareInstance] ;
}
//对对象使用copy也是返回唯一实例
-(id)copyWithZone:(NSZone *)zone {
    return [Singleton shareInstance] ;//return _instance;
}
 //对对象使用mutablecopy也是返回唯一实例
-(id)mutableCopyWithZone:(NSZone *)zone {
    return [Singleton shareInstance] ;
}
@end    
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

# 问题2.微信三方登陆过程中,游戏打开微信 微信提示: 微信登录失败,由于应用Universal link校验不通过,无法完成微信登录

  • 常见原因1

    微信后台没有正确配置universal link (1.https的链接,以“/”结尾 2.是一个网站根目录 例如 https://https://gpop.sdo.com/)

  • 常见原因2

    apple-app-site-association没有正确配置在链接根目录(1.要求打开网站可以直接显示apple-app-site-association文件内容,下载apple-app-site-association文件不行,2.手机打开网站主页会出现app图标以及“打开”字样)

# 问题3.微信三方登陆过程中,游戏打开微信,在微信中点击授权之后返回游戏,游戏停留在登陆页面没有反应

  • 常见原因1

    Appdelegate中缺少微信回调的方法

 - (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler {
    return [[GHomeAPI sharedGHome] application:application continueUserActivity:userActivity restorationHandler:restorationHandler];
}
1
2
3

# 问题4.dyld: Library not loaded: @rpath/ghome_sdk.framework/ghome_sdk

Referenced from: /private/var/containers/Bundle/Application/90A67208-F713-45FC-BEBB-EAF1E8839DD9/ghome-demo.app/ghome-demo

Reason: image not found

  • 常见原因1

    Embed属性没有设置成EMbed& Sign (ghome_sdk.framework需要添加进General->Framework, Libraries,and Embedded Content中 并且Embed属性为 Eembed & Sign 参考 3.2)

  • 常见原因2

    XCode版本号与GhomeSDK打包使用的XCode版本不一致(sdk打包文件名中有对应的XCode对应版本)

  • 常见原因3

    always Embed Swift standard Libraries 属性没有设置成YES (选中 target 中的 一个target 在build settings 中搜索 swift 会出现 always Embed Swift standard Libraries 设置为yes)

  • 常见原因4

    ghome_sdk所在目录与游戏项目中所配制路径不相同(一般是脚本拷贝文件时候出错,导致所要使用的sdk版本没有正确复制到对应的目录中)

# 问题5. sdk初始化成功,调用登陆接口,没有弹出登陆框,并且crash

  • 常见原因1

    GhomeSDK 所需要的两个bundle文件没有引入到项目中

# 问题6. 已经替换了最新的证书和描述文件,还是报错,找不到匹配的证书

  • 常见原因1

    一般是缓存导致(1.重启电脑和XCode , 2 将证书删掉重新安装,3. 手动选择证书)


# Untiy 相关


# Cocos 相关


# 公共

# 隐私政策如何显示更合理?

  • foo

# 隐私政策显示逻辑简介(同上面截图的这款游戏一致)

# 【不显示隐私条款】

  • 当前APP存在登录态(登录态有效能够直接接入游戏),且隐私条款没有修改(即用户登录前同意时的隐私版本一致),则不显示隐私条款同意界面。 重要:前序条件全部为充分且必要条件

# 【显示隐私条款】

  • 除上述情况以外,其他情况均会运行后显示隐私条款界面。

# 案例:

  • 第1步:用户首次安装后,APP首次运行,【显示】隐私条款界面
  • 第2步:用户选择同意,并进行了账号登录,随后关闭APP
  • 第3步:用户再次运行APP(假设当前隐私条款内容没有修改),直接进入游戏,【不显示】隐私条款界面
  • 第4步:用户游戏界面中,选择退出登录,在回到登录界面之前,【显示】隐私条款界面
  • 第5步:用户此时选择关闭APP(没有登录),而后重新开启APP,【显示】隐私条款界面

Last Updated: 2024/12/10 07:12:56