跳到主要内容

iOS 常见问题

为什么 iOS AppDelegate 的回调方法无法被调用到?

典型场景如下:

  • Facebook app 授权登录后,无法调用到 AppDelegate 的 OpenURL 方法。
  • Firebase SDK 的自动方法交换失效,无法调用到 AppDelegate 的didRegisterForRemoteNotificationsWithDeviceToken 方法。
Answer

请检查 iOS App 引入的所有第三方库,是否错误地使用了 Objective-C 的自动方法交换等动态特性,导致 AppDelegate 的回调方法执行链中断。已知 GluAppTracking.framework 有此问题,需根据具体的游戏引擎来解决此问题。

为什么 iOS 端无法收到 Facebook 渠道的 Deferred DeepLink?

Answer

iOS 端需要将 Facebook app 以及游戏本身的广告追踪都打开,才能正常收到 Deferred DeepLink.

如果其一的广告跟踪功能被关闭,Facebook Deferred DeepLink 功能就无法正常使用。

Facebook app 打开广告追踪:

  • 在 Facebook app 弹出 ATT 许可弹窗时点击 允许
  • 或者可手动前往 设置 > 隐私 > 跟踪 然后将 Facebook app 的开关打开。

游戏打开广告追踪:

  • 调用接口 RequestTrackingAuthorization。更多详情,请参见 Unity SDKUnreal Engine SDKRequestTrackingAuthorization 接口。

iOS 打包时报错 "Could not find or use auto-linked library. Undefined symbols for architecture arm64"

Answer

iOS Swift 模块不能直接添加到 Unreal Engine 中,必须修改引擎配置,添加 bridge 桥接层。

更多详情,请参见 Swift SDK 的桥接

iOS app 卡在 logo 页面后崩溃 "Watchdog Violation"

Answer

Watchdog Violation 是 iOS 系统保护,卡死一段时间后杀死进程。崩溃是因为 Unity Mobile Notifications 和 Firebase SDK 不兼容导致的。

可选择移除 Firebase SDK,或根据 Unity Issue Tracker 里的步骤更新 Unity Mobile Notifications。

更多关于错误的信息,请参见 iOS 15 crash with build on Xcode 13

Player Network 是否直接依赖 INTLCore 申请的 iOS 敏感权限?

Answer

权限说明:

  • NSPhotoLibraryUsageDescription - 访问玩家的图库,一般用于选择图片用作玩家头像,或者选择图片/视频来进行分享。
  • NSCameraUsageDescription - 使用拍照功能,一般用于拍照上传用作玩家头像,客服系统里面拍照或者录制视频上传。
  • NSLocationWhenInUseUsageDescription - 获取玩家位置,一般用于寻找附件的玩家。
  • NSPhotoLibraryAddUsageDescription - 往照片库中添加照片,一般用于游戏中保存图片,比如精彩时刻,对局结果等。
  • NSMicrophoneUsageDescription - 使用麦克风/录音功能,一般用于游戏内语音沟通。

Player Network 并不直接依赖这些权限。如果游戏有保存图片到图库,或者读取图库的需求,需要保留 NSPhotoLibraryUsageDescriptionNSPhotoLibraryAddUsageDescription

LI PASS 注销账号在打开 H5 页面后,为什么在上传照片时可以直接访问图库而无需授权?

Answer

H5 选择照片权限和客户端的照片权限是独立的,游戏通过 H5 页面去打开文件,访问照片,不会发起授权弹窗,会直接被赋予私密访问权限而无需授权。

图片: iOS UI