IT이야기

Xcode의 임베디드 바이너리는 무엇입니까?

cyworld 2021. 9. 25. 11:11
반응형

Xcode의 임베디드 바이너리는 무엇입니까?


저는 Swift 프로젝트에서 Alamofire사용 하고 있으며 수동 설치 지침의 일부는 내 애플리케이션 대상의 일반 탭에 있는 임베디드 바이너리 아래에 Alamofire를 추가하는 것 입니다.

여기에 이미지 설명 입력

임베디드 바이너리 란 무엇입니까 ?


포함된 바이너리는 프로젝트를 빌드할 때 애플리케이션 번들에 복사되는 바이너리 파일입니다. 애플리케이션이 타사 프레임워크에 의존하는 경우 임베디드 바이너리를 사용하여 사람들이 해당 프레임워크를 컴퓨터에 설치하지 않고도 애플리케이션을 사용할 수 있도록 합니다. 임베디드 바이너리를 사용하면 사용자가 타사 프레임워크를 수동으로 설치할 필요가 없습니다. 귀하의 애플리케이션은 귀하가 내장한 프레임워크를 사용합니다.

Alamofire 예제에서 애플리케이션은 Alamofire에 의존합니다. Alamofire 프레임워크를 포함하지 않은 경우 Alamofire를 수동으로 설치하지 않는 한 아무도 애플리케이션을 사용할 수 없습니다. Alamofire를 애플리케이션에 포함하면 모든 사람이 애플리케이션을 실행할 수 있습니다.


  • "바이너리"는 코드를 텍스트로 작성할 때 작업하는 "소스 코드"와 반대되는 컴파일된 코드를 의미합니다.

    그들은 당신에게 소스 코드를 부여하고 할 수있는 당신이 그것을 컴파일하지만, 그들은하지 않았다; 그들은 소스 코드를 비밀로 유지하고 있으므로 컴파일 후에 모든 것을 당신에게 주어 당신이 그것을 읽을 수 없도록 했습니다.

  • "임베디드"는 빌드 시 앱 번들에 복사하여 앱 번들 내부에 포함됨을 의미합니다.

    그래서 그들은 당신에게 컴파일된 코드(프레임워크)를 주고 앱 번들에 포함시키는 방법을 알려줍니다. 이러한 프레임워크는 Cocoa의 프레임워크와 달리 기기에 이미 존재하지 않으므로 앱 내부에 포함하지 않으면 존재하지 않으며 앱에서 이를 호출할 수 없습니다.

    이것을 Cocoa의 프레임워크와 대조하십시오. 그것들도 컴파일된 코드입니다. 그러나 그들은 않습니다 이미 장치에 존재한다. 따라서 앱 내부에 포함되지 않습니다. 그것들은 단지 연결되어 있을 뿐입니다 (만약 그것이 나타난다면 다음 그룹인 Linked Frameworks and Libraries에 나타날 것입니다).


바이너리를 포함하면 전체 프레임워크가 대상에 복사됩니다.

A framework는 동적 라이브러리, 헤더 파일 및 스토리보드, 이미지 파일 및 현지화된 문자열과 같은 리소스를 단일 패키지로 캡슐화하는 계층적 디렉토리입니다. 프레임워크를 사용 embed the framework하는 앱은 앱 번들에 있어야 합니다 .

따라서 앱에 프레임워크를 포함하면 앱 번들에 복사되기 때문에 앱 크기가 늘어납니다. 대부분의 시나리오에서 우리는 타사 프레임워크를 사용할 때 이 섹션을 사용합니다.

우리가를 추가하는 경우 frameworkEmbedded Binaries이를 자동으로 해당 프레임 워크를 추가 Linked Frameworks and Libraries도.

자세한 내용은 Apple 문서를 참조하십시오. https://developer.apple.com/library/archive/technotes/tn2435/_index.html


Xcode 11Frameworks, Libraries, and Embedded Content섹션 만 포함

Embedding실제로 기본적으로 Frameworks 디렉토리 아래의 애플리케이션 번들에 프레임워크 사본추가합니다 . 귀하의 애플리케이션은 프레임워크에 링크되지 않는 한 해당 프레임워크로 아무 것도 할 수 없습니다. Xcode는 당신을 위해 이것을 하는 자유를 가지고 있습니다. [링크 대 삽입]

출처는 여기

ReferenceURL : https://stackoverflow.com/questions/30173529/what-are-embedded-binaries-in-xcode

반응형