Estoy usando RPSystemBroadcastPickerView para mostrar una vista de selector, desde la cual un usuario puede seleccionar un servicio de transmisión para grabar la pantalla. Según la documentación, preferredExtension debería permitirme establecer qué extensión de transmisión debería mostrar el selector.

El código es super simple:

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

Donde "com.milan.nosal.broadcast-extension" es el identificador de paquete de la extensión que quiero que ofrezca el selector (verifiqué su corrección varias veces).

Sin embargo, cuando se toca el control, al principio la ventana emergente muestra una selección vacía:

enter image description here

Después de cerrarlo y tocar el control nuevamente, muestra la extensión correcta. Esto solo ocurre cuando la aplicación está instalada (o reinstalada), después de que se muestra, se muestra siempre.

¿Es este el error beta de iOS 12, o estoy haciendo algo incorrectamente? ¿Puedo "registrar previamente" la extensión para evitar esto?

EDITAR:

Después de publicar la aplicación, encontramos el mismo problema con nuestros usuarios, pero esta vez ni siquiera tocar el control varias veces ayuda: ¡el selector siempre está vacío! Parece que la extensión está instalada correctamente, ya que se puede iniciar desde el centro de control.

Ejecutando en lanzamiento oficial ahora.

15
Milan Nosáľ 13 sep. 2018 a las 14:30

4 respuestas

La mejor respuesta

Creo que es el error de la manzana, pero se solucionó en iOS 12.2 después de que lo probé.

3
MarginD 12 abr. 2019 a las 02:42

Tengo el mismo problema, parece que Xcode tiene algunos problemas sobre cómo instalar broadcastExtension con su aplicación. Para mí, solo está relacionado con el modo de depuración. Para ver la IU correcta, intente habilitar la transmisión una vez de la manera anterior (centro de control -> toque profundo -> iniciar transmisión), después de eso en su BroadcastPickerView verá la IU correcta (está presionando iOS para actualizar la información sobre la extensión). No se puede reproducir en modo de liberación.

1
Bws Sluk 15 oct. 2018 a las 14:45

Puede encontrar su preferedExtension exactamente aquí:

image

Cuando agrega pickerView.preferredExtension exactamente el Identificador de paquete, su aplicación se mostrará en la Lista de aplicaciones de grabación. ¡Espero que esto ayude!

0
Laurenz Albe 26 abr. 2019 a las 05:44

Si no configuro ".preferredExtension", veo todas las extensiones en la lista. Probé en iOS12 GM.

-1
user1418067 14 sep. 2018 a las 00:32