Я много раз использовал use_frameworks
в CocoaPods Podfile
. Мне просто интересно, почему мы его используем? Я не мог получить на него прямого ответа.
Пример:
platform :ios, '8.0'
use_frameworks!
target "CityWhether" do
pod 'Alamofire'
pod 'SwiftyJSON'
end
ios
frameworks
cocoapods
static-libraries
харикриста
источник
источник
Ответы:
use_frameworks
сообщает CocoaPods, что вы хотите использовать Frameworks вместо статических библиотек. Поскольку Swift не поддерживает статические библиотеки, вам необходимо использовать фреймворки.В другом ответе я объяснил различия между статическими библиотеками и фреймворками:
Источники: Другой мой ответ | Блог AddThis.com
источник
use_frameworks!
указывает какао-стручкам использовать динамические библиотеки, и в какой-то момент это было очень распространено, в частности, из-за того, что swift не поддерживал статические библиотеки, что означает, что выбора не было - однако вам часто больше не нужноuse_frameworks!
.Начиная с Xcode 9 beta 4 и CocoaPods 1.5.0, теперь поддерживаются статические библиотеки swift. Основное преимущество - более быстрое время запуска приложения, особенно если у вас много подов - iOS 10 и 11 не самые быстрые, когда у вас много дилибов.
CocoaPods 1.5.0 был выпущен в начале апреля 2018 года , так что вам , возможно , потребуется обновить , чтобы получить его:
sudo gem install cocoapods
.Я нашел несколько модулей, которые пока не работают со статическими библиотеками, поэтому ваш опыт может отличаться.
источник
No such module
ошибками. Это проблема тех коконожек?use_modular_headers!
в свой Podfile, чтобы он работал с модулями, которые предположительно требуют этого, но пока не включаются сами по себе.use_frameworks
заявляет, что вы хотите использовать динамические фреймворки вместо статических библиотек .С выпущенными Xcode 9.0 и CocoaPods 1.5.0 вы можете использовать статические библиотеки с swift, если вы не используете
use_frameworks
.Одна из проблем
use_frameworks
заключается в том, что все ваши фреймворки в Pods / Products являются фреймворками.Вот соответствующая статья: Базовый обзор статических и динамических фреймворков на ios
источник
One performance with use_frameworks is that all your framework in Pods/Products is frameworks.
Один спектакль какой?[About] Cocoapod
use_frameworks!
отвечает за тип двоичного файла :use_frameworks!
это присутствует -dynamic framework
use_frameworks!
это нет -static library
use_frameworks!
имеет отражение вMach-O Type
[О программе] в соответствующей целиPods
проекта.Лента новостей:
use_frameworks!
которые вы должны были использовать для Swift стручка[Словарь]
источник
Добавление
в Podfile означает, что мы хотим, чтобы перечисленные фреймворки устанавливались динамически, а не как статические.
источник