一、問題描述
在做手機錄屏功能時,運行同一份代碼,發(fā)現(xiàn)自己的手機(系統(tǒng)13.4)能錄制屏幕,而測試機(系統(tǒng)12.4)不能錄制屏幕。
二、代碼實現(xiàn)
使用iOS12的系統(tǒng)控件RPSystemBroadcastPickerView來實現(xiàn)錄屏功能,代碼如下:
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)
}
三、問題產(chǎn)生的現(xiàn)象
如下圖所示,preferredExtension參數(shù)不生效,沒有顯示當前的app,而extension的bundleId確認過是對的。

使用preferredExtension不生效
四、解決方案
經(jīng)排查,發(fā)現(xiàn)Extension的target配置有問題。

image.png
新建Extension時,target配置的支持最低系統(tǒng),默認是最新的,現(xiàn)在是13.4(自己手機系統(tǒng)剛好滿足),而測試機是12系統(tǒng),低于13.4,所以錄屏時有問題。
把系統(tǒng)改成從12.0開始支持就可以了。
五、解決后的效果圖

image.png