ReplayKit錄屏的坑

一、問題描述
在做手機錄屏功能時,運行同一份代碼,發(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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容