code

CocoaPods에서 use_frameworks를 사용하는 이유는 무엇입니까?

codestyles 2020. 11. 8. 10:02
반응형

CocoaPods에서 use_frameworks를 사용하는 이유는 무엇입니까?


use_frameworksCocoaPods에서 Podfile여러 번 사용 했습니다 . 왜 우리가 그것을 사용하는지 궁금합니다. 나는 그것에 대한 직접적인 대답을 얻지 못했습니다.

예:

platform :ios, '8.0'
use_frameworks!

target "CityWhether" do
    pod 'Alamofire'
    pod 'SwiftyJSON'
end

use_frameworksCocoaPods에 정적 라이브러리 대신 프레임 워크를 사용하려고 함을 알립니다. Swift는 Static Libraries를 지원하지 않으므로 프레임 워크를 사용해야합니다.


또 다른 답변으로 정적 라이브러리와 프레임 워크의 차이점을 설명했습니다.

Cocoa Touch 프레임 워크

항상 오픈 소스이며 앱처럼 빌드됩니다. (따라서 Xcode는 앱을 실행할 때와 항상 프로젝트를 정리 한 후에이를 컴파일합니다.) 프레임 워크는 iOS 8 이상 만 지원하지만 프레임 워크에서 Swift 및 Objective-C를 사용할 수 있습니다.

Cocoa Touch 정적 라이브러리

이름에서 알 수 있듯이 정적입니다. 따라서 프로젝트로 가져올 때 이미 컴파일 된 것입니다. 코드를 보여주지 않고도 다른 사람과 공유 할 수 있습니다. 현재 정적 라이브러리는 Swift를 지원하지 않습니다. 라이브러리 내에서 Objective-C를 사용해야합니다. 앱 자체는 여전히 Swift로 작성할 수 있습니다.

출처 : 내 다른 답변 | AddThis.com 블로그


"use_frameworks!"를 사용할 필요가 없습니다. 더 이상.

Xcode 9 베타 4 및 CocoaPods 1.5.0부터는 신속한 정적 라이브러리가 지원됩니다. 가장 큰 장점은 특히 포드가 많은 경우 앱 시작 시간이 더 빠르다는 것입니다. iOS 10 및 11은 dylib가 많을 때 가장 빠르지 않습니다.

CocoaPods 1.5.0은 2018 년 4 월 초에 출시 되었으므로 업그레이드해야 할 수 있습니다 sudo gem install cocoapods.

아직 정적 라이브러리에서 제대로 작동하지 않는 여러 포드를 찾았으므로 마일리지가 다릅니다.


첨가

use_frameworks!

Podfile에서는 나열된 프레임 워크가 정적 프레임 워크 대신 동적으로 설치되기를 원한다는 의미입니다.


use_frameworks!정적 라이브러리 대신 동적 프레임 워크 를 사용하겠다고 선언했습니다 .

Xcode 9.0 및 CocoaPods 1.5.0이 출시되었습니다. 을 사용하지 않으면 swift와 함께 정적 라이브러리를 사용할 수 있습니다 use_frameworks.

한 가지 성능 use_frameworks은 포드 / 제품의 모든 프레임 워크가 프레임 워크라는 것입니다.

관련 기사 : iOS의 정적 및 동적 프레임 워크에 대한 기본 개요


기본적으로 Cocoapods builds Static Library, 필요한 경우 Podfile에서 Static Framework지정할 수 있습니다 use_frameworks!.

Xcode 9까지는 Swift를 정적 라이브러리에 빌드하는 지원이 없었으며 동적 프레임 워크를 사용해야했습니다. 이것은 일부 개발자, 특히 연결된 많은 동적 바이너리의 시작 성능 영향에 대해 걱정하는 개발자에게는 거래를 깨뜨 렸습니다.

CocoaPods 1.5.0을 사용하면 개발자가 더 이상 ʻuse_frameworks! Swift를 사용하는 포드를 설치하기 위해 Podfile에서. Objective-C와의 상호 운용은 작동해야합니다. 그러나 Swift 포드가 Objective-C 포드에 의존하는 경우 해당 Objective-C 포드에 대해 "모듈 식 헤더"(아래 참조)를 활성화해야합니다.

여기여기에서 더 많은 것을 읽으 십시오


use_frameworks!podfile에서 iOS 8.0 이상이 지원됨을 보여줍니다. 모든 cocoapods libs에 대해 iOS 7.0을 지원하지 않습니다.

프로젝트에서 iOS 7.0 이상을 지원하려면 삭제해야합니다.

그래서 변화는 타격입니다

platform :ios, '7.0' target "CityWhether" do end

참고 URL : https://stackoverflow.com/questions/41210249/why-do-we-use-use-frameworks-in-cocoapods

반응형