一、问题描述
在做手机录屏功能时,运行同一份代码,发现自己的手机(系统13.4)能录制屏幕,而测试机(系统12.4)不能录制屏幕。
二、代码实现
使用iOS12的系统控件RPSystemBroadcastPickerView
来实现录屏功能,代码如下:
override func viewDidLoad() {
super.viewDidLoad()
let broadcastPicker = RPSystemBroadcastPickerView(frame: CGRect(x: 0, y: 0, width: 50, height: 50))
broadcastPicker.preferredExtension = "com.your-app.broadcast.extension"
containerView.addSubview(broadcastPicker)
}
三、问题产生的现象
如下图所示,preferredExtension
参数不生效,没有显示当前的app,而extension的bundleId确认过是对的。
使用preferredExtension不生效
四、解决方案
经排查,发现Extension的target配置有问题。
image.png
新建Extension时,target配置的支持最低系统,默认是最新的,现在是13.4(自己手机系统刚好满足),而测试机是12系统,低于13.4,所以录屏时有问题。
把系统改成从12.0开始支持就可以了。
五、解决后的效果图
image.png