Użyłem use_frameworks
w CocoaPodsPodfile
Wiele razy . Zastanawiam się tylko, dlaczego go używamy? Nie mogłem znaleźć na to prostej odpowiedzi.
Przykład:
platform :ios, '8.0'
use_frameworks!
target "CityWhether" do
pod 'Alamofire'
pod 'SwiftyJSON'
end
ios
frameworks
cocoapods
static-libraries
harikrista
źródło
źródło
Odpowiedzi:
use_frameworks
informuje CocoaPods, że chcesz używać struktur zamiast bibliotek statycznych. Ponieważ Swift nie obsługuje bibliotek statycznych, musisz używać frameworków.W innej odpowiedzi wyjaśniłem różnice między bibliotekami statycznymi a frameworkami:
Źródła: Moja inna odpowiedź | Blog AddThis.com
źródło
use_frameworks!
mówi strąkom kakaowym, aby korzystały z bibliotek dynamicznych i był bardzo rozpowszechniony w pewnym momencie, w szczególności ze względu na szybkie nieobsługiwanie bibliotek statycznych, co oznacza, że nie było wyboru - jednak często już nie potrzebujeszuse_frameworks!
.Począwszy od Xcode 9 beta 4 i CocoaPods 1.5.0, obsługiwane są szybkie biblioteki statyczne. Główną zaletą jest krótszy czas uruchamiania aplikacji, szczególnie jeśli masz dużo podów - iOS 10 i 11 nie są najszybsze, gdy masz wiele dylibów.
CocoaPods 1.5.0 został wydany na początku kwietnia 2018 roku , więc może trzeba uaktualnić je zdobyć:
sudo gem install cocoapods
.Znalazłem jednak kilka podów, które jeszcze nie działają poprawnie z bibliotekami statycznymi, więc Twój przebieg może się różnić.
źródło
No such module
błędy. Czy to problem z tymi kokoapodami?use_modular_headers!
do mojego pliku Podfile, aby działał z podami, które prawdopodobnie tego wymagają, ale nie włączaj go samodzielnie.use_frameworks
deklaruje, że chcesz używać struktur dynamicznych zamiast bibliotek statycznych .Po wydaniu Xcode 9.0 i CocoaPods 1.5.0 możesz szybko korzystać z bibliotek statycznych, jeśli nie używasz
use_frameworks
.Jeden problem z
use_frameworks
jest to, że wszystkie ramy w podach / produktach to frameworki.Oto powiązany artykuł: Podstawowe omówienie struktur statycznych i dynamicznych na iOS
źródło
One performance with use_frameworks is that all your framework in Pods/Products is frameworks.
Co takiego jednego przedstawienia?Cocoapod's [About]
use_frameworks!
odpowiada za typ pliku binarnego:use_frameworks!
jest obecny -dynamic framework
use_frameworks!
jest nieobecny -static library
use_frameworks!
ma odzwierciedlenie wMach-O Type
[About] w odpowiednim celuPods
projektu.Oś czasu:
use_frameworks!
które trzeba było wykorzystać do Swift strąka[Słownictwo]
źródło
Dodawanie
w pliku Podfile oznacza, że chcemy, aby wymienione frameworki były instalowane dynamicznie zamiast tego jako struktury statyczne.
źródło