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).


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.


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


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


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.


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.


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.


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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.