美文网首页
iOS15.2 注册相册变化通知时未给相册权限导致崩溃 卡死

iOS15.2 注册相册变化通知时未给相册权限导致崩溃 卡死

作者: 拿铁加冰 | 来源:发表于2021-12-23 16:27 被阅读0次

    iOS15.2 在app初始化时调用该方法 未给相册权限 会导致app卡死 不能启动 会触发iOS 启动看门狗机制 崩溃

    在app已经启动后 调用该方法 未给相册权限 会导致页面卡死 不能使用

    [PHPhotoLibrary.sharedPhotoLibrary registerChangeObserver:self]

    iOS15.2 以前使用该通知是不需要相册权限的 15.2之后 苹果添加了应用隐私报告 添加了该方法的相册权限前提

    解决方案: 先请求相册权限 在获取到权限后 同时将注册该通知放到异步注册

    if (@available(iOS 14, *)) {
        [PHPhotoLibrary requestAuthorizationForAccessLevel:PHAccessLevelReadWrite handler:^(PHAuthorizationStatus status) {
            if (status == PHAuthorizationStatusAuthorized)
            {
                dispatch_async(dispatch_get_global_queue(0, 0), ^{
                    [PHPhotoLibrary.sharedPhotoLibrary registerChangeObserver:self];
                });
            }
        }];
    }else {
        [PHPhotoLibrary requestAuthorization:^(PHAuthorizationStatus status){
            if (status == PHAuthorizationStatusAuthorized)
            {
                dispatch_async(dispatch_get_global_queue(0, 0), ^{
                    [PHPhotoLibrary.sharedPhotoLibrary registerChangeObserver:self];
                });
            }
        }];
    }
    
    - (void)photoLibraryDidChange:(PHChange *)changeInstance
    {
        /// 回到主线程处理 
        __weak typeof (self) weakSelf = self;
        dispatch_async(dispatch_get_main_queue(), ^{
        });
    }
    

    相关文章

      网友评论

          本文标题:iOS15.2 注册相册变化通知时未给相册权限导致崩溃 卡死

          本文链接:https://www.haomeiwen.com/subject/pgnhqrtx.html