NSBundle.allFrameworks не возвращает некоторые фреймворки - PullRequest
2 голосов
/ 11 июня 2019

Мы разрабатываем SDK в Objective-C, и как часть нашего сервиса для наших потребителей SDK у нас есть инструмент, который проверяет, существуют ли все необходимые платформы в проекте разработки. Для этого мы используем NSBundle.allFrameworks , который должен возвращать все платформы, и мы ищем необходимую структуру в возвращаемом результате.

Мы видим странное поведение этого вызова, которое меняется между версиями ОС. Например, когда мы вызываем NSBundle.allFrameworks на iOS, возвращаемый список не содержит некоторые платформы, такие как MobileCoreServices, CoreGraphics, UIKit, Конфигурация системы

Если мы выполняем один и тот же вызов на устройстве iOS 11, единственная инфраструктура, которой не хватает, это SystemConfiguration .

Кто-нибудь знаком с этим поведением? Мы очень хотели бы предоставить эту функциональность для наших пользователей

1 Ответ

0 голосов
/ 11 июня 2019

Согласно документам , возвращается:

Массив всех пакетов приложения, представляющих фреймворки. Включены только фреймворки с одним или несколькими классами Objective-C.

И в разделе Обсуждение упоминается, что:

Возвращаемый массив включает в себя фреймворки, которые связаны с приложением при его создании, и пакеты для фреймворков, которые были созданы динамически.

Это означает, что отображаются каркасы с хотя бы одним классом Objective-C, которые связаны внутри приложения / связаны с приложением.

например. Если и приложение, и встроенные платформы не связаны с определенной структурой, оно не появится в списке.

...