A classe PLBuildVersion é implementada nas duas estruturas

225

Construção do iOS 10 / Xcode 8 GM, obtendo as informações abaixo, nunca as tinha antes no Xcode 7. Alguma idéia?

objc [25161]: A classe PLBuildVersion é implementada em /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/PrivateFrameworks/AssetsLibraryServices.framework/20 e /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/PrivateFrameworks/PhotoLibraryServices.framework/PhotoLibraryServices (0x1202c4210). Um dos dois será usado. Qual é indefinido.

(NOTA: Apenas parece acontecer no simulador, não aparece no dispositivo real).

FlatDog
fonte
1
Você está usando o Fabric ou outra biblioteca do Twitter no seu projeto?
Kevin
3
Eu não estou usando o twitter. talvez o Firebase também possa causar isso?
Yitzchak
1
@noellee como Zac Eu estou usando tecido no meu projeto e eu também tenho o mesmo erro
user1019042
1
@Yitschak eu uso firebase e consegui isso também.
N3wbie 28/09/16
1
sim, estou usando o Fabric e o Crashlytics (v3.8.2)
FlatDog 2/16

Respostas:

144

Ideia principal

A ideia principal é simples:

Se seu aplicativo (ou dependências, como Pods) usar estrutura, que usa explícita (ou implícita) PhotoLibraryServices.frameworkou AssetsLibraryServices.frameworkcomo dependência, o Xcode o avisa (mesmo se você estiver usando apenas um deles). Pode ser Photos/PhotosUI.frameworkou AssetsLibrary.frameworkou outra (não tenho uma lista completa de dependências, mas é possível).

Qual é o problema?

Classe com nome PLBuildVersioné definida em ambos PhotoLibraryServices.frameworke AssetsLibraryServices.framework. O nome da classe é exclusivo no Objective-C (você não pode definir 2 classes com o mesmo nome); portanto, não está definido qual delas será usada em tempo de execução.

No entanto, acho que não será um problema, porque as duas classes têm os mesmos métodos e campos (verificado isso com desmontador) e acho que ambas foram compiladas a partir da mesma fonte.

O radar já foi enviado.

Roman Ermolov
fonte
2
a mensagem de aviso ainda está lá.
Faiz Fareed
9
Descobri que, se eu usar o Webview em um VC, recebi esse tipo de mensagem de aviso na janela de depuração quando o VC é mostrado. Eu uso o Xcode 8.1, swift 3.
David.Chu.ca
1
estou usando o xcode 8.2 e não tenho nenhum uso fotolibário no meu projeto e ainda recebo esse aviso.
Himanshu Moradiya 17/03/2019
1
Sou eu ou a apresentação do viewcontroller fica lenta, o que está sendo apresentado e tem essa mensagem de aviso ???
Nr5
2
Também recebo esse aviso quando defino .attributedText. Não estou acessando câmera ou fotos. Esse aviso também causa um atraso sério no carregamento do View Controller, mesmo que não haja tarefas demoradas (sem acesso à rede, sem E / S de arquivos, etc.).
R Moyer
53

Conforme resposta do funcionário da Apple no Fórum do desenvolvedor da Apple :

Você não controla nenhuma das fontes de classe listadas; portanto, não há nada que possa ou deva fazer - além de Relatar um bug.

Raphael Oliveira
fonte
Eu acho que é isso.
Fattie
2
Mesmo que isso não é um problema, ele ainda gera a saída irritante e perturbador, este gritos "bug" ...
Jakub Truhlář
46

Não consegui encontrar uma maneira de me livrar do aviso, mas se você deseja impedir que o aplicativo falhe, é necessário fornecer uma descrição do motivo pelo qual está acessando a câmera, a biblioteca de fotos etc. Isso é novo no iOS10.

Insira o seguinte no seu Info.plistarquivo.

foto

Chave: Privacy - Photo Library Usage Description Valor: $(PRODUCT_NAME) photo use

Câmera

Chave: Privacy - Camera Usage Description Valor: $(PRODUCT_NAME) camera use

Mais informações podem ser encontradas aqui: https://iosdevcenters.blogspot.com/2016/09/infoplist-privacy-settings-in-ios-10.html

Nick Meehan
fonte
33
As mensagens de aviso ainda estão lá.
Kevin
6
meu aplicativo não usa a câmera e recebo a mensagem. Ainda assim, tentei adicioná-los ao plist, como você sugeriu, e que ainda não o resolveu.
FlatDog 2/16
5
Alguém descobriu isso? Eu não estou usando biblioteca de fotos nem estou usando câmera, no entanto eu ainda obter o aviso e o acidente
MikeG
2
@ MikeG Eu também não estou usando nenhuma das bibliotecas e ainda estou recebendo o travamento, me livrei dos avisos adicionando os detalhes de configuração da chave / string ao info.plistarquivo. Aparentemente, a sua necessidade no IOS 10.x
David Morton
2
Eu recebi esse aviso depois de definir textView.attributedText para NSAttributedString
mik.ro
12

Acho que você pode obter esse erro apenas usando um UIWebView. Minha solução foi substituir o uso do UIWebView pelo WKWebView.

mate
fonte
5
Eu tentei o WKWebView, mas o aviso ainda está aparecendo
muz the axe
5

Eu tive isso depois de adicionar o Answers on Fabric ao meu projeto.

A exclusão de dados derivados fez o truque para mim. (comando shift alt k no XCode)

Edite um ano depois:

Após excluir os dados derivados, sempre saia do XCode e inicie-o novamente.

Em casos não relacionados, tenho a impressão de que a exclusão de dados derivados não limpa os XCode em caches de memória dos dados derivados.

Gerd Castan
fonte
Estou usando o xcode8.2.1
Dashrath #
2

A redefinição do simulador do iOS corrigiu isso para mim. Simulador -> Redefinir conteúdo e configurações.

Eric Mentele
fonte
Acabei de chegar à mesma conclusão e funcionou para mim também.
197 Franz
0

No meu caso, esse aviso começou a aparecer após a abertura de um segundo projeto xcode e a execução do segundo aplicativo no simulador. Depois de voltar ao primeiro aplicativo, o aviso começou a aparecer. Acabei de sair do Simulator e do Xcode e reabri meu projeto. O aviso desapareceu depois disso. Se isso não resolver, continue com as outras respostas. O Xcode pode ser muito exigente às vezes.

Alexander Luna
fonte