Почему мы используем 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 проект.

Лента новостей:

  1. CocoaPods 0,36 введенаuse_frameworks! который вам приходилось использовать для Swift pod
  2. 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

Другие вопросы по тегам