Почему мы используем use_frameworks в CocoaPods?
Я использовал use_frameworks
в CocoaPods Podfile
много раз. Мне просто интересно, почему мы это используем? Я не мог получить прямой ответ на это.
Пример:
platform :ios, '8.0'
use_frameworks!
target "CityWhether" do
pod 'Alamofire'
pod 'SwiftyJSON'
end
3 ответа
use_frameworks
сообщает CocoaPods, что вы хотите использовать Frameworks вместо статических библиотек. Поскольку Swift не поддерживает статические библиотеки, вы должны использовать фреймворки.
В другом ответе я объяснил различия между статическими библиотеками и фреймворками:
Какао Touch Рамки
Они всегда с открытым исходным кодом и будут создаваться так же, как ваше приложение. (Таким образом, Xcode иногда компилирует его, когда вы запускаете свое приложение и всегда после того, как очистили проект.) Фреймворки поддерживают только iOS 8 и новее, но вы можете использовать Swift и Objective-C во фреймворке.
Какао Touch Статические библиотеки
Как следует из названия, они статичны. Поэтому они уже скомпилированы, когда вы импортируете их в свой проект. Вы можете поделиться ими с другими, не показывая им свой код. Обратите внимание, что статические библиотеки в настоящее время не поддерживают Swift. Вам придется использовать Objective-C в библиотеке. Само приложение все еще может быть написано на Swift.
Источники: Мой другой ответ | Блог AddThis.com
Вам не нужно использовать use_frameworks! больше.
Начиная с Xcode 9 beta 4 и CocoaPods 1.5.0, теперь поддерживаются быстрые статические библиотеки. Основным преимуществом является более быстрое время запуска приложения, особенно если у вас много модулей - iOS 10 и 11 не самые быстрые, когда у вас много dylibs.
CocoaPods 1.5.0 был выпущен в начале апреля 2018 года, поэтому вам может потребоваться обновление, чтобы получить его: sudo gem install cocoapods
,
Я нашел несколько модулей, которые еще не работают корректно со статическими библиотеками, поэтому ваш пробег может варьироваться.
use_frameworks!
заявил, что вы хотите использовать динамические рамки, а не статические библиотеки.
С выпуском Xcode 9.0 и CocoaPods 1.5.0. Вы можете использовать статические библиотеки с Swift, если вы не используете use_frameworks
,
Одно выступление с use_frameworks
в том, что все ваши фреймворки в Pods/Products это фреймворки.
Вот связанная статья: Базовый обзор статических и динамических фреймворков на ios
Cocoapod's [О нас] use_frameworks!
отвечает за тип двоичного файла:
- если
use_frameworks!
в настоящее время -dynamic framework
- если
use_frameworks!
это нет -static library
use_frameworks!
имеет отражение в Mach-O Type
[About] в соответствующей целиPods
проект.
Лента новостей:
- CocoaPods 0,36 введена
use_frameworks!
который вам приходилось использовать для Swift pod - CocoaPods 1.5.0 и Xcode 9 позволили вам иметь выбор
Добавление
use_frameworks!
Подфайл означает, что мы хотим, чтобы перечисленные фреймворки устанавливались динамически, а не как статические.
use_frameworks!
в подфайле показано, что будет поддерживаться iOS 8.0 и новее. Он не поддерживает iOS 7.0 для всех библиотек cocoapods.
Если вы хотите, чтобы проект поддерживал iOS 7.0 и более поздние версии, вы должны удалить его.
Так что изменения это удар
platform :ios, '7.0'
target "CityWhether" do
end