16

I feel so noob asking this question, but what is a target dependency? I see it all the time in Xcode.

Sherm Pendley
  • 13,556
  • 3
  • 45
  • 57
Bob Chandelerison
  • 161
  • 1
  • 1
  • 3

2 Answers2

19

A dependency is another target that must be built before the current target can be. For example, if you have an app target and a framework target, the app target can have the framework target as a dependency, to ensure that the framework is built first. That is, the app target "depends" on the framework.

Sherm Pendley
  • 13,556
  • 3
  • 45
  • 57
7

Xcode Explicit Dependency

Xcode Dependency[About] is a dependency required to build a selected target.

Explicit dependency

Explicit dependency is a source code aka Non-compiled dependency. Xcode builds all explicit dependencies before the dependent target. Explicit dependency overrides implicit dependency with the same product_name.

Explicit Dependency is specified in Build Phases -> Target Dependencies.

There are multiple ways to specify in Xcode that our target depends on other target’s products:

  • If a target is located in the same project
    No additional setup
  • If a targets is located in different projects using cross-project reference[About]
    Specify search path

Additional notes:

  • Dynamic Framework
    • You should specify General -> Embedded Binaries. If not - on the real device you will get dyld: Library not loaded[About]
    • If you start adding your dependency from General -> Embedded Binaries and select a product that is explicit dependency, Xcode automatically add it into Build Phases -> Target Dependencies
  • Static binary
    • You can fill out only Build Phases -> Target Dependencies

[Implicit dependency]

[Vocabulary]

yoAlex5
  • 29,217
  • 8
  • 193
  • 205