背景:app升级版本,需要新建项目,移植功能模块。
弹出extension列表,发现什么都没有,找了半天原因,又把之前的流程理了一遍,没发现问题。
如图:
什么app都没有。。。
最后在新建项目里发现了问题,我用的测试手机系统版本是iOS12.0,但是新建的extension APP版本太高了!!!
如图:
意识到这个问题后就没有问题了,把iOS14.0改成12.0运行后成功了。
如图:
==============================================================
1 ? ? ?RPSystemBroadcastPickerView ? ?寻找button。
代码如下:
.h 文件
#import
NS_ASSUME_NONNULL_BEGIN
@interface RPSystemBroadcastPickerView (FindButton)
- (UIButton *)findButton;
@end
NS_ASSUME_NONNULL_END
.m 文件
#import "RPSystemBroadcastPickerView+FindButton.h"
@implementation RPSystemBroadcastPickerView (FindButton)
- (UIButton *)findButton {
? ? return [self findButton:self];
}
- (UIButton*)findButton:(UIView*)view {
? ? if(!view.subviews.count) {
? ? ? ? returnnil;
? ? }
? ? if ([view isKindOfClass:[UIButton class]]) {
? ? ? ? return(UIButton*)view;
? ? }
? ? UIButton*btn;
? ? for(UIView*subViewinview.subviews) {
? ? ? ? UIView*destinationView = [selffindButton:subView];
? ? ? ? if(destinationView) {
? ? ? ? ? ? btn = (UIButton*)destinationView;
? ? ? ? ? ? break;
? ? ? ? }
? ? }
? ? returnbtn;
}
@end
2 : 初始化
#pragma mark 初始化系统录屏按钮 RPSystemBroadcastPickerView
? ? if(@available(iOS12.0, *)) {
? ? ? ? self.picker = [[RPSystemBroadcastPickerView alloc] initWithFrame:CGRectZero];
? ? ? ? //不显示话筒,麦克风按钮默认显示
? ? ? ? self.picker.showsMicrophoneButton = NO;
? ? ? ? //preferredExtension设置成自己的 bundel ID就只会显示自己记得APP Extension,默认显示的是所有的Extension列表,包括其他APP的Extension
? ? ? ? self.picker.preferredExtension = @"你的APP Extension的bundel ID";
? ? }else{
? ? ? ? // Fallback on earlier versions
? ? }
3: 使用
@property (nonatomic,strong)RPSystemBroadcastPickerView *picker;
#pragma mark显示Extension列表
? ? //直接获取RPSystemBroadcastPickerView的button
? ? UIButton*btn = [self.picker findButton];
? ? //调用button点击方法,去显示Extension列表
? ? [btn sendActionsForControlEvents:UIControlEventAllTouchEvents];
=============================================================