banchichen / TZImagePickerController

一个支持多选、选原图和视频的图片选择器,同时有预览、裁剪功能,支持iOS6+。 A clone of UIImagePickerController, support picking multiple photos、original photo、video, also allow preview photo and video, support iOS6+

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

点击“添加更多可访问照片”crash!!!

xbindai opened this issue · comments

提bug前必看
请先回答下列三个问题,否则不允处理,谢谢配合。
1、我最新的Demo是否有这个bug?【如果Demo没问题,请升级新版
答:Demo没有,因为demo中添加了PhotosUI.framework

2、你用的是什么版本?升级到最新版后是否正常?
答:v3.8.0。没有添加PhotosUI.framework库,功能不正常

3、是否有改动过我库内部的代码?【如有,请说明改动点
答:没有改动

bug内容描述
描述:直接pod install安装到工程中,第一次运行后,触发TZImagePickerController,会有个相册权限请求,相册权限选择“选中的图片”,选中一些图片,完成。然后把进程删掉。
再次启动app,触发TZImagePickerController,会展示相册权限sheet,选择“保留当前所选内容“,TZImagePickerController中,点击内部的“添加更多可访问照片”,直接crash。

后面查明原因是工程依赖库中没有添加PhotosUI.framework

ps:这个是不是要在安装说明中说一下呀~

我如何复现这个bug?
运行一个在工程中没有添加PhotosUI库的工程
1、第一次运行启动工程,触发TZImagePickerController的相册图片选择,会弹出相册权限请求,选“选中的图片”,选中几张图片,然后点完成。杀掉当前进程。
2、再次启动工程,触发TZImagePickerController,会弹出sheet,选“保留当前所选内容”,进入TZImagePickerController内部,点击item “添加更多可访问照片”

或者:
1、到设置中,关闭app的相机权限;相册权限,选“选中的图片”,选中几张图,然后点击完成。
2、启动工程,触发TZImagePickerController的相册选择,会弹出sheet,选“保留当前所选内容”,进入TZImagePickerController内部,点击item “添加更多可访问照片”

就crash了。打印的信息如下:Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[PHPhotoLibrary presentLimitedLibraryPickerFromViewController:]: unrecognized selector sent to instance 0x7fed3c2d7490'
terminating with uncaught exception of type NSException
CoreSimulator 802.6 - Device: iPhone 13 (0159600C-BA7A-4429-A0E0-463527CBA8A5) - Runtime: iOS 15.4 (19E240) - DeviceType: iPhone 13

截图

其它说明
有没有其它要补充的?比如你的初始化TZImagePickerController的代码
初始化代码:
TZImagePickerController *picker = [[TZImagePickerController alloc] initWithMaxImagesCount:1 delegate:self];
picker.allowTakePicture = NO; // 内部显示拍照按钮
picker.allowTakeVideo = NO; // 内部显示拍视频按钮
picker.allowPickingVideo = NO; // 是否可以选择视频
picker.allowPickingGif = NO; // 是否可以选择GIF图
picker.showSelectBtn = NO;
picker.allowCrop = YES;//允许裁剪
picker.cropViewSettingBlock = ^(UIView *cropView) {
cropView.layer.borderWidth = 1;
cropView.layer.borderColor = [UIColor colorWithWhite:0.5 alpha:1].CGColor;
};
picker.cropRect = CGRectMake(0, (kScreenHeight-kScreenWidth)/2, kScreenWidth, kScreenWidth);//裁剪框尺寸
picker.modalPresentationStyle = UIModalPresentationFullScreen;//全屏
[picker setDidFinishPickingPhotosHandle:^(NSArray<UIImage *> *photos, NSArray *assets, BOOL isSelectOriginalPhoto) {
//TODO...
}];
[self presentViewController:picker animated:YES completion:nil];

了解了,来个PR不,一起完善下readme~

可以升级到3.8.1哈,已解决,已把PhotosUI依赖写到podspec里:36cce2b