Error "Conexión de [ShareSheet] invalidada" error iOS13 + pero no en iOS 11.4

8

Quiero compartir un archivo usando la hoja Compartir y tengo un código escrito que parece funcionar bien. Sin embargo, sigo viendo estos mensajes de error en el registro (usando Xcode 11.3)

[ShareSheet] connection invalidated

Tengo dos dispositivos físicos en los que estoy probando; un iPad con iOS 13.1.2 y un iPhone 6 con 11.4. No veo estos mensajes en el iPhone con el iOS anterior. En ambos casos, compartir parece funcionar bien. Aquí está el código que estoy usando usando texto en lugar de un archivo:

let activityViewController = UIActivityViewController(activityItems: ["simple text for test"], applicationActivities: nil)
activityViewController.excludedActivityTypes = [.message, .airDrop]
activityViewController.popoverPresentationController?.barButtonItem = myBarButtonItem           
self.present(activityViewController, animated: true, completion: nil)

El mensaje aparece cuando la hoja de compartir desaparece (ya sea porque el usuario completa una acción o toca fuera de ella para cancelar).

¿Es seguro ignorar estos mensajes? Es extraño que no aparecieran en el sistema operativo anterior, pero sí en el nuevo.

Editado el 20 de marzo de 2020: validé que estaba proporcionando una fuente válida o barButtonItem. He cambiado el código para que coincida con el que estoy usando un UIBarButtonItem y todavía veo el error de invalidación de conexión ShareSheet.

noroeste
fuente
1
Estoy teniendo el mismo problema Y algunos usuarios afirman que la hoja de acciones no aparecerá. Pero mi dispositivo de prueba funciona bien.
Kimi Chiu

Respuestas:

1

tengo

Conexión [ShareSheet] invalidada

en el registro de salida de Xcode en iOS 13.x, y la hoja de compartir se aplastó y no tenía ningún botón.

Para solucionarlo, asigne su sourceViewa algo más específico queself.view

En mi caso, tenía algunos UILabelscerca de la parte superior de mi vista, así que puse sourceViewuno de esos. Por ejemplo, en mi controlador de vista principal, tenía un UILabelnombre, labelCustomerNameasí que usé eso:

activityViewController.popoverPresentationController?.sourceView = self.labelCustomerName
Phill Z
fuente
También he visto la ventana aplastada cuando no le doy un botón específico. Modifiqué mi ejemplo para que sea correcto (estaba usando un elemento BarButtonItem e incluí el código incorrecto). Aún veo el error de invalidación de conexión de la hoja de compartir.
NO
0

Para mí, se resolvió cuando agregué este código, basado en la documentación del desarrollador de Apple .

activityViewController.isModalInPresentation = true

Por cierto, parece que incluso si presiona el botón de cerrar para la actividad, todavía muestra ese mensaje.

carlosobedgomez
fuente