allenlinli
allenlinli

Reputation: 2154

What is the difference between "Embedded Binaries" in Xcode General tab and "Embeded Frameworks" in Build Phases tab?

What is the difference between "Embedded Binaries" in Xcode General tab and "Embeded Frameworks" in Build Phases tab?

And What is the difference between "Linked Frameworks" in General tab and "Link Binary with Libraries" in Build Phrases tab?


There are some articles explain them What is the difference between Embedded Binaries and Linked Frameworks Link Binary with libraries VS Embed Frameworks

But I still don't know the differences between the ones in General tab and the ones in Build Phases tab.

Upvotes: 1

Views: 879

Answers (1)

Saravana Kumar K R
Saravana Kumar K R

Reputation: 291

  1. Embedded Binaries:

    A Binary is a compiled file and in this case, it's a Framework in iOS environment. When you are using a framework which is not available in the iOS device, such as Alamofire, SDWebImage, you need to configure your xcode project, such that it copies the Binary File into the IPA while exporting. If its not copied, the IPA will not work as the code required to run Alamofire and SDWebImage is not available in the iOS environment or the IPA.

    In the case of Frameworks developed by Apple, which is already available in the iOS enviroment, you dont have to add them to the Embedded Binary, such as UIKit, Foundation.

    If you are running an API which is supported from iOS 12, in a device with iOS 10, the application will crash as the iOS 10 environment is not aware of the API in iOS 12. This issue is address in Android Development using support library which is a Binary in Android, which has all the latest API and can be used in different versions of Android OS.

  2. Linked Frameworks and Libraries

    Here you should add the apple's default frameworks and libraries. It is added to indicate that the current Target is using those Frameworks, since LLVM is available in Xcode now, you dont have to do this as its automatically linked with the help of LLVM

  3. Embedded Frameworks

  4. Link Binary With Libraries

To understand 3 & 4, you need to get an idea about Build Phases.

Build phases are some of the processes that happens when the code is compiled to a binary with is exported as an IPA file. In short, they are processes that happen when you are building your project.

When you are building your project, the steps listed in the build phases is done one after the other,

3 & 4 are two processes done during the Build process.

  1. This process, embedds the library to the Binary Compiled file for use in the application.
  2. This process links the compiled binary with the library.

Upvotes: 2

Related Questions