问题原因:
iOS15 系统有了更严格的相册权限控制,在没有相册权限就调用相册接口的时候,iOS15 系统内部会发生崩溃,然后进入一个死循环,大约 10s ~ 50s 才能走出来,这段时间内线程是卡死的。给了相册权限之后就一切正常。
修复版本:
Dev 版本:
5.1.7 及其以后版本(5.1.7 于 2021.12.14 发布)
Stable 版本:
5.1.3.8 及其以后的 5.1.3.x 版本 (5.1.3.8 于 2021.12.21 发布)
4.1.1.11 及其以后的 4.1.1.x 版本 (4.1.1.11 预计于 2022.1.13 发布)
不升级 SDK 的解决方案:
一、针对点击“相册”按钮卡死的版本。
重写聊天页面的点击扩展按钮的方法,通过 tag 判断出现是点击了 相册 按钮,app 主动申请相册权限之后再调用父类接口进入相册 RCConversationViewController类
RCConversationViewController的子类中重写下面方法:
- (void)pluginBoardView:(RCPluginBoardView *)pluginBoardView clickedItemWithTag:(NSInteger)tag {
switch (tag) {
case PLUGIN_BOARD_ITEM_ALBUM_TAG: {
if (@available(iOS 14.0, *)) {
[PHPhotoLibrary requestAuthorizationForAccessLevel:PHAccessLevelReadWrite
handler:^(PHAuthorizationStatus status) {
dispatch_async(dispatch_get_main_queue(), ^{
[super pluginBoardView:pluginBoardView clickedItemWithTag:tag];
});
}];
}else{
[super pluginBoardView:pluginBoardView clickedItemWithTag:tag];
}
}break;
default:
[super pluginBoardView:pluginBoardView clickedItemWithTag:tag];
break;
}
}
二、针对 4.x 版本 SDK,点击 加号按钮 卡死的情况。(4.1.1.6以及之前版本)