2019 年实现 Swift Package Manager 和 XCode 集成的步骤:
1) 创建 Dependencies.swift 文件
/yourproject/Dependencies/Sources/Dependencies.swift
(empty file)
2) 创建 macos.xcconfig 文件
/yourproject/Dependencies/Sources/macos.xcconfig
MACOSX_DEPLOYMENT_TARGET = 10.14
3) 创建 Package.swift 文件
/yourproject/Dependencies/Package.swift
// swift-tools-version:4.2
import PackageDescription
let package = Package(
name: "Dependencies",
products: [
.library(name: "Dependencies", type: .static, targets: ["Dependencies"])
],
dependencies: [
.package(url: "https://github.com/YourDependency/here.git", .upToNextMinor(from: "0.1.0"))
],
targets: [
.target(name: "Dependencies", dependencies: ["YourDependency"])
]
)
4) 生成 Dependencies.xcodeproj 并拖放到您现有的项目中
swift package generate-xcodeproj --xcconfig-overrides Sources/macos.xcconfig
5) 导入您的依赖项
import YourDependency
这足以让它工作,但您可以通过一些额外的步骤让您的生活更轻松。
其他(可选)步骤:
6) 创建 ios.xcconfig 文件
/yourproject/Dependencies/Sources/ios.xcconfig
SDKROOT = iphoneos
SUPPORTED_PLATFORMS = iphonesimulator iphoneos
IPHONEOS_DEPLOYMENT_TARGET = 10.0
ARCHS = $(ARCHS_STANDARD)
VALID_ARCHS = $(ARCHS_STANDARD)
VALIDATE_PRODUCT = YES
LD_RUNPATH_SEARCH_PATHS = $(inherited) @executable_path/Frameworks
TARGETED_DEVICE_FAMILY = 1, 2
7) 将预构建操作添加到主项目的 iOS 和 macOS 方案
iOS
echo "Building SPM Dependencies"
BASE_DIR="${PROJECT_DIR}/Dependencies"
cd ${BASE_DIR}
rm -fr Dependencies.xcodeproj
swift package update
swift package generate-xcodeproj --xcconfig-overrides Sources/ios.xcconfig
sleep 3
until [ -d "Dependencies.xcodeproj" ]
do
echo "File not found"
sleep 0.1
done
echo "File found"
exit
macOS
echo "Building SPM Dependencies"
BASE_DIR="${PROJECT_DIR}/Dependencies"
cd ${BASE_DIR}
rm -fr Dependencies.xcodeproj
swift package update
swift package generate-xcodeproj --xcconfig-overrides Sources/macos.xcconfig
sleep 3
until [ -d "Dependencies.xcodeproj" ]
do
echo "File not found"
sleep 0.1
done
echo "File found"
exit
8) 运行您的项目并享受 :)