Сборка iOS 10 / Xcode 8 GM, полученная ниже, никогда не была такой раньше на Xcode 7. Есть идеи?

objc [25161]: Класс PLBuildVersion реализован в обоих /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/PrivateFrameworks/AssetsLibraryServices.framework/AssetsLibraryServices (0x12049a910) и /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/PrivateFrameworks/PhotoLibraryServices.framework/PhotoLibraryServices (0x1202c4210). Один из двух будет использован. Какой из них не определен.

(ПРИМЕЧАНИЕ: кажется, что это происходит только в симуляторе, не отображается на реальном устройстве).

FlatDog

Ответов: 7

Ответы (7)

Согласно ответу сотрудника Apple на форуме разработчиков Apple:

Вы не контролируете ни один из перечисленных источников классов, поэтому вы ничего не можете или не должны делать - кроме сообщения об ошибке.

Это было у меня после добавления Answers on Fabric в мой проект.

Удаление производных данных помогло мне. (команда shift alt k в XCode)

Редактировать через год:

После удаления производных данных всегда выходите из XCode и запускайте его заново.

В несвязанных случаях у меня создается впечатление, что удаление производных данных не очищает XCode в кэшах памяти от производных данных.

Мне не удалось найти способ избавиться от предупреждения, но если вы хотите предотвратить сбой приложения, вам нужно предоставить описание того, почему вы обращаетесь к камере, библиотеке фотографий и т. Д. Это новинка в iOS10.

Введите следующее в свой файл Info.plist.

Photo

Ключ: Конфиденциальность - Описание использования библиотеки фотографий Значение: $ (PRODUCT_NAME) использовать фото

Камера

Ключ: Конфиденциальность - Описание использования камеры Значение: $ (PRODUCT_NAME) использование камеры

Более подробную информацию можно найти здесь: https://iosdevcenters.blogspot.com/2016/09/infoplist-privacy-settings-in-ios-10.html

Сброс симулятора iOS исправил это для меня. Симулятор -> Сбросить содержимое и настройки.

Я считаю, что вы можете получить эту ошибку, просто используя UIWebView. Мое решение состояло в том, чтобы заменить использование UIWebView на WKWebView.

В моем случае это предупреждение начало появляться после открытия второго проекта xcode и запуска второго приложения на симуляторе. После возврата к первому приложению начало появляться предупреждение. Я просто вышел из Simulator и Xcode и снова открыл свой проект. После этого предупреждение исчезло. Если это не решит проблему, перейдите к другим ответам. Xcode иногда бывает очень разборчивым.

Основная идея

Основная идея проста:

If your app (or dependencies, such as Pods) uses framework, that uses explicit (or implicit) PhotoLibraryServices.framework or AssetsLibraryServices.framework as dependency, Xcode warns you (even if you are using only one of them). It might be Photos/PhotosUI.framework or AssetsLibrary.framework, or another (I don't have full list of dependencies, but it is possible).

В чем проблема?

Класс с именем PLBuildVersion определен как в PhotoLibraryServices.framework, так и в AssetsLibraryServices.framework. Имя класса уникально в Objective-C (вы не можете определить 2 класса с одинаковым именем), поэтому не определено, какой из них будет использоваться во время выполнения.

Однако я думаю, что это не будет проблемой, потому что оба класса имеют одинаковые методы и поля (проверял это с помощью дизассемблера), и я предполагаю, что оба были скомпилированы из одного источника.

Радар уже отправлен.

2022 WebDevInsider