Erro "Conexão [ShareSheet] invalidada" erro iOS13 +, mas não no iOS 11.4

8

Quero compartilhar um arquivo usando a Folha de Compartilhamento e ter um código escrito que pareça funcionar perfeitamente. No entanto, continuo vendo essas mensagens de erro no log (usando o Xcode 11.3)

[ShareSheet] connection invalidated

Eu tenho dois dispositivos físicos em que estou testando; um iPad com iOS 13.1.2 e um iPhone 6 com 11.4. Não vejo essas mensagens no iPhone com o iOS mais antigo. Nos dois casos, o compartilhamento parece funcionar bem. Aqui está o código que estou usando usando texto em vez de um arquivo:

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)

A mensagem aparece quando a planilha de compartilhamento desaparece (porque o usuário conclui uma ação ou toca fora dela para cancelar).

É seguro ignorar essas mensagens? É estranho que eles não apareçam no sistema operacional mais antigo, mas no novo.

Editado em 20 de março de 2020: validei que estava fornecendo uma fonte válida ou barButtonItem. Alterei o código para corresponder àquele em que estou usando um UIBarButtonItem e ainda vejo o erro invalidado da conexão ShareSheet.

NW
fonte
1
Estou tendo o mesmo problema. E alguns usuários afirmam que a planilha de compartilhamento não será exibida. Mas meu dispositivo de teste está funcionando bem.
Kimi Chiu

Respostas:

1

Eu tenho

Conexão [ShareSheet] invalidada

no log de saída do Xcode no iOS 13.x, e a planilha de compartilhamento foi esmagada e não tinha botões.

Para corrigi-lo, atribua seu sourceViewa algo mais específico do queself.view

No meu caso, eu tinha alguns UILabelsperto do topo da minha visão, então defini o meu sourceViewpara um deles. Por exemplo, no meu controlador de exibição pai, eu tinha um UILabelnome, labelCustomerNameentão usei isso:

activityViewController.popoverPresentationController?.sourceView = self.labelCustomerName
Phill Z
fonte
Também vi a janela esmagada quando não dou um botão específico. Modifiquei meu exemplo para estar correto (eu estava usando um barButtonItem e havia incluído o código errado). Ainda está vendo o erro invalidado da conexão Share Sheet.
NW
0

Para mim, foi resolvido quando adicionei esse código, com base na documentação do desenvolvedor da Apple .

activityViewController.isModalInPresentation = true

A propósito, parece que, mesmo se pressionar o botão Fechar da atividade, ele ainda mostra essa mensagem.

carlosobedgomez
fonte