收藏
评论

关于OpenSDK iOS 15系统的适配说明官方

Xcode13.0及以上版本编译出的App在iOS 15.0及以上系统上被限制了URL Scheme query的数量为50。对于plist中LSApplicationQueriesSchemes配置的scheme数量超过50的App,可能会导致:

  1. OpenSDK某些接口返回错误结果;
  2. 无法使用Universal Link拉起微信,引发分享消息到微信后,应用名被添加"未验证应用"的问题。

使用13.0以及以上版本Xcode编译App的开发者需要适配以确保OpenSDK的正常使用。

背景

从iOS 9开始,iOS支持在工程plist中配置LSApplicationQueriesSchemes

示例:

将其他App的scheme配置到LSApplicationQueriesScheme中后,可以通过以下代码判断是否可以通过scheme跳转对应的App。

 BOOL ret = [[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"weixin://"]];

在接入OpenSDK时,接入文档有要求在LSApplicationQueriesScheme添加weixin 和weixinULAPI(如上面截图所示)。

iOS 15 系统相关变更

经验证,在iOS 15系统上,使用Xcode 13编译出的App,LSApplicationQueriesSchemes的数量会限制为50个。

第50个之后的scheme配置会不生效,以下代码会返回NO

BOOL ret = [[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"otherAppScheme://"]];

OpenSDK适配建议

如果LSApplicationQueriesSchemes配置的scheme数量小于50,或者"weixin"和"weixinULAPI"这两个sheme在前50,无需适配。

使用Xcode 12以及以下版本Xcode编译的App目前暂不需要适配。

确保"weixin"和"weixinULAPI"配置在LSApplicationQueriesSchemes的前50。

否则以下接口可能会在iOS 15系统上返回错误结果或者表现异常:

  1. [WXApi isWXAppInstalled]:安装微信的情况下,也返回NO
  2. [WXApi isWXAppSupportApi]:支持的情况下,也返回NO
  3. [WXApi isWXAppSupportStateAPI]:支持的情况下,也返回NO
  4. [WXApi sendAuthReq:viewController:delegatecompletion]:会判断微信未安装,拉起网页授权。
  5. 所有的接口都会无法使用Universal Link拉起微信,降级使用scheme拉起微信,导致未验证应用问题。


13636浏览
收藏
登录 后发表内容