Bird
0
0

You want to create a Swift package that produces a library named Utils and depends on an external package Alamofire. Which Package.swift snippet correctly sets this up?

hard📝 Application Q15 of 15
Swift - Basics and Runtime
You want to create a Swift package that produces a library named Utils and depends on an external package Alamofire. Which Package.swift snippet correctly sets this up?
Alet package = Package(name: "Utils", dependencies: [.package(url: "https://github.com/Alamofire/Alamofire.git")], targets: [.target(name: "Utils")], products: [.library(name: "Utils", targets: ["Utils"])])
Blet package = Package(name: "Utils", targets: [.target(name: "Utils")], products: [.executable(name: "Utils", targets: ["Utils"])])
Clet package = Package(name: "Utils", dependencies: [], targets: [.target(name: "Utils")], products: [.library(name: "Utils", targets: ["Utils"])])
Dlet package = Package(name: "Utils", dependencies: [.package(url: "https://github.com/Alamofire/Alamofire.git", from: "5.0.0")], targets: [.target(name: "Utils", dependencies: ["Alamofire"])], products: [.library(name: "Utils", targets: ["Utils"])])
Step-by-Step Solution
Solution:
  1. Step 1: Identify correct dependency syntax

    let package = Package(name: "Utils", dependencies: [.package(url: "https://github.com/Alamofire/Alamofire.git", from: "5.0.0")], targets: [.target(name: "Utils", dependencies: ["Alamofire"])], products: [.library(name: "Utils", targets: ["Utils"])]) correctly specifies the dependency with URL and version using from: "5.0.0", which is required for versioning.
  2. Step 2: Check targets and products

    let package = Package(name: "Utils", dependencies: [.package(url: "https://github.com/Alamofire/Alamofire.git", from: "5.0.0")], targets: [.target(name: "Utils", dependencies: ["Alamofire"])], products: [.library(name: "Utils", targets: ["Utils"])]) includes the dependency in the target's dependencies array and defines a library product named "Utils" targeting the "Utils" target.
  3. Step 3: Compare other options

    let package = Package(name: "Utils", targets: [.target(name: "Utils")], products: [.executable(name: "Utils", targets: ["Utils"])]) lacks dependencies and wrongly defines an executable product. let package = Package(name: "Utils", dependencies: [], targets: [.target(name: "Utils")], products: [.library(name: "Utils", targets: ["Utils"])]) has no dependencies. let package = Package(name: "Utils", dependencies: [.package(url: "https://github.com/Alamofire/Alamofire.git")], targets: [.target(name: "Utils")], products: [.library(name: "Utils", targets: ["Utils"])]) misses the version specifier for the dependency, which is required.
  4. Final Answer:

    let package = Package(name: "Utils", dependencies: [.package(url: "https://github.com/Alamofire/Alamofire.git", from: "5.0.0")], targets: [.target(name: "Utils", dependencies: ["Alamofire"])], products: [.library(name: "Utils", targets: ["Utils"])]) -> Option D
  5. Quick Check:

    Dependency with version + target dependency + library product = let package = Package(name: "Utils", dependencies: [.package(url: "https://github.com/Alamofire/Alamofire.git", from: "5.0.0")], targets: [.target(name: "Utils", dependencies: ["Alamofire"])], products: [.library(name: "Utils", targets: ["Utils"])]) [OK]
Quick Trick: Specify dependency URL with version and add it to target dependencies. [OK]
Common Mistakes:
  • Omitting version in dependency declaration
  • Not adding dependency to target's dependencies
  • Using executable product instead of library
  • Leaving dependencies empty when needed

Want More Practice?

15+ quiz questions · All difficulty levels · Free

Free Signup - Practice All Questions
More Swift Quizzes