web-dev-qa-db-ja.com

ReplayKitのRPSystemBroadcastPickerViewがpreferredExtensionを表示しない

私は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です(その正確性を複数回チェックしました)。

ただし、コントロールがタップされると、最初はポップアップに空の選択が表示されます。

enter image description here

閉じてからもう一度コントロールをタップすると、正しい拡張子が表示されます。これは、アプリがインストール(または再インストール)された場合にのみ発生し、表示された後は常に表示されます。

これはiOS 12ベータ版のバグですか、それとも何か間違っていますか?これを回避するために拡張機能を「事前登録」できますか?

編集:

アプリを公開した後、ユーザーに同じ問題が発生しましたが、今回はコントロールを複数回タップすることすらできません-ピッカーは常に空です!コントロールセンターから起動できるため、拡張機能が正しくインストールされているようです。

現在、公式リリースで実行されています。

15
Milan Nosáľ

それはAppleのバグだと思いますが、テストした結果、iOS 12.2で修正されました。

2
MarginD

私は同じ問題を抱えていますが、XcodeにあなたのアプリでbroadcastExtensionをインストールする方法にいくつかの問題があるようです。私にとっては、デバッグモードでのみ関連しています。正しいUIを表示するには、古い方法でブロードキャストを有効にしてみてください(コントロールセンター->ディープタッチ->ブロードキャストを開始)。その後、BroadcastPickerViewに正しいUIが表示されます(拡張機能に関する情報を更新するためにiOSをプッシュしています)。リリースモードでは再現できません。

1
Bws Sluk

あなたは正確にpreferedExtensionをここに見つけることができます:

image

pickerView.preferredExtensionをバンドルIDとまったく同じように追加すると、アプリがRecording App Listに表示されます。お役に立てれば!

0
ANDYNVT