私はRPSystemBroadcastPickerView
を使用して、ユーザーが放送サービスを選択して画面を記録できるピッカービューを表示しています。ドキュメントに基づいて、preferredExtension
を使用すると、ピッカーが表示するブロードキャスト拡張機能を設定できます。
コードは非常に簡単です:
let broadcastPickerView = RPSystemBroadcastPickerView(frame: CGRect(x: 0, y: 0, width: 51, height: 51))
view.addSubview(broadcastPickerView)
broadcastPickerView.preferredExtension = "com.milan.nosal.broadcast-extension"
broadcastPickerView.backgroundColor = .clear
broadcastPickerView.showsMicrophoneButton = false
どこ "com.milan.nosal.broadcast-extension"
は、ピッカーに提供する拡張機能のバンドルIDです(その正確性を複数回チェックしました)。
ただし、コントロールがタップされると、最初はポップアップに空の選択が表示されます。
閉じてからもう一度コントロールをタップすると、正しい拡張子が表示されます。これは、アプリがインストール(または再インストール)された場合にのみ発生し、表示された後は常に表示されます。
これはiOS 12ベータ版のバグですか、それとも何か間違っていますか?これを回避するために拡張機能を「事前登録」できますか?
編集:
アプリを公開した後、ユーザーに同じ問題が発生しましたが、今回はコントロールを複数回タップすることすらできません-ピッカーは常に空です!コントロールセンターから起動できるため、拡張機能が正しくインストールされているようです。
現在、公式リリースで実行されています。
それはAppleのバグだと思いますが、テストした結果、iOS 12.2で修正されました。
私は同じ問題を抱えていますが、XcodeにあなたのアプリでbroadcastExtensionをインストールする方法にいくつかの問題があるようです。私にとっては、デバッグモードでのみ関連しています。正しいUIを表示するには、古い方法でブロードキャストを有効にしてみてください(コントロールセンター->ディープタッチ->ブロードキャストを開始)。その後、BroadcastPickerViewに正しいUIが表示されます(拡張機能に関する情報を更新するためにiOSをプッシュしています)。リリースモードでは再現できません。
あなたは正確にpreferedExtension
をここに見つけることができます:
pickerView.preferredExtension
をバンドルIDとまったく同じように追加すると、アプリがRecording App Listに表示されます。お役に立てれば!