use_frameworks
CocoaPods에서 Podfile
여러 번 사용 했습니다 . 왜 우리가 그것을 사용하는지 궁금합니다. 나는 그것에 대한 직접적인 대답을 얻지 못했습니다.
예:
platform :ios, '8.0'
use_frameworks!
target "CityWhether" do
pod 'Alamofire'
pod 'SwiftyJSON'
end
use_frameworks
CocoaPods에서 Podfile
여러 번 사용 했습니다 . 왜 우리가 그것을 사용하는지 궁금합니다. 나는 그것에 대한 직접적인 대답을 얻지 못했습니다.
예:
platform :ios, '8.0'
use_frameworks!
target "CityWhether" do
pod 'Alamofire'
pod 'SwiftyJSON'
end
답변:
use_frameworks
CocoaPods에 정적 라이브러리 대신 프레임 워크를 사용하려고 함을 알립니다. Swift는 Static Libraries를 지원하지 않으므로 프레임 워크를 사용해야합니다.
또 다른 답변에서 정적 라이브러리와 프레임 워크의 차이점을 설명했습니다.
Cocoa Touch 프레임 워크
항상 오픈 소스이며 앱과 같이 빌드됩니다. (따라서 Xcode는 앱을 실행할 때 그리고 항상 프로젝트를 정리 한 후에 컴파일합니다.) 프레임 워크는 iOS 8 이상 만 지원하지만 프레임 워크에서 Swift 및 Objective-C를 사용할 수 있습니다.
Cocoa Touch 정적 라이브러리
이름에서 알 수 있듯이 정적입니다. 따라서 프로젝트로 가져올 때 이미 컴파일 된 것입니다. 코드를 보여주지 않고도 다른 사람과 공유 할 수 있습니다. 현재 정적 라이브러리는 Swift를 지원하지 않습니다. 라이브러리 내에서 Objective-C를 사용해야합니다. 앱 자체는 여전히 Swift로 작성할 수 있습니다.
출처 : 내 다른 답변 | AddThis.com 블로그
use_frameworks!
은 코코아 포드에 동적 라이브러리를 사용하도록 지시하고, 특히 정적 라이브러리를 지원하지 않는 신속한 처리로 인해 한때 매우 널리 퍼졌습니다. 즉, 선택의 여지가 없었지만 더 이상 필요 하지 않은 경우 가 많습니다 use_frameworks!
.
Xcode 9 베타 4 및 CocoaPods 1.5.0부터는 신속한 정적 라이브러리가 지원됩니다. 가장 큰 장점은 특히 포드가 많은 경우 앱 시작 시간이 더 빠르다는 것입니다. iOS 10 및 11은 dylib가 많을 때 가장 빠르지 않습니다.
CocoaPods 1.5.0은 2018 년 4 월 초에 출시 되었으므로 업그레이드해야 할 수 있습니다 sudo gem install cocoapods
.
아직 정적 라이브러리에서 제대로 작동하지 않는 포드를 여러 개 찾았으므로 마일리지가 다를 수 있습니다.
No such module
오류가 발생했습니다. 그 코코아 포드의 문제입니까?
use_modular_headers!
아마도 필요하지만 아직 자체적으로 활성화하지 않은 포드와 함께 작동하도록 Podfile에 추가 해야했습니다.
use_frameworks
정적 라이브러리 대신 동적 프레임 워크 를 사용할 것임을 선언합니다 .
Xcode 9.0 및 CocoaPods 1.5.0이 출시 된 상태에서 .NET을 사용하지 않으면 swift에서 정적 라이브러리를 사용할 수 있습니다 use_frameworks
.
한 가지 문제 use_frameworks
는 포드 / 제품의 모든 프레임 워크가 프레임 워크라는 것입니다.
관련 기사 : iOS의 정적 및 동적 프레임 워크에 대한 기본 개요
One performance with use_frameworks is that all your framework in Pods/Products is frameworks.
하나의 공연은 무엇입니까?
Cocoapod의 [About] use_frameworks!
은 바이너리 유형을 담당합니다.
use_frameworks!
있다 현재 -dynamic framework
use_frameworks!
있다 존재하지 -static library
use_frameworks!
프로젝트 의 해당 대상 에서 Mach-O Type
[정보] 에 반영됩니다 Pods
.
타임 라인 :
use_frameworks!
Swift pod에 사용해야하는 CocoaPods 0.36 도입