bte*_*pot 8 swift swift-package-manager
我知道如何转储包的依赖关系树:
swift package show-dependencies
Run Code Online (Sandbox Code Playgroud)
但对于项目?
这不是一个漂亮的解决方案,我刚刚完成它(不再测试),但到目前为止它适用于 Xcode 14.1:
Scripts/dependenciesTree.sh在项目根目录下创建一个bash 脚本:if [[ $1 == "" ]]; then
echo "Missing build dir as 1st parameter"
exit 1
fi
if [[ $2 == "" ]]; then
echo "Missing project dir as 2nd parameter"
exit 1
fi
BUILD_DIR=$1
PROJECT_DIR=$2
echo "Build dependencies tree"
cd "$BUILD_DIR/../../SourcePackages/checkouts"
exportFile="$PROJECT_DIR/dependencies-tree.md"
echo "# Dependencies trees for each Swift-Package" > "$exportFile"
echo "" >> "$exportFile"
echo "Build date: $(date '+%Y-%d-%m %a %H:%M:%S %Z')" >> "$exportFile"
echo "" >> "$exportFile"
for directory in */; do
echo "Tree for $directory"
echo "" >> "$exportFile"
echo "## Tree for $directory" >> "$exportFile"
pushd $directory
swift package show-dependencies >> "$exportFile"
echo "" >> "$exportFile"
echo "" >> "$exportFile"
popd
done
Run Code Online (Sandbox Code Playgroud)
# Script must be run without Xcode environment variables,
# otherwise it may try to build an iOS application targeting macOS based on iOS.
# Which doesn't make any sense and always fails.
env -i "$PROJECT_DIR/Scripts/dependenciesTree.sh" "$BUILD_DIR" "$PROJECT_DIR"
Run Code Online (Sandbox Code Playgroud)
结果就在dependencies-tree.md文件中。
不过,这有一个问题:如果从本地目录而不是 GIT 存储库添加包,则它不会在那里列出。但如果它们引用 GIT 存储库,则应在此处列出其传递依赖项。
| 归档时间: |
|
| 查看次数: |
1173 次 |
| 最近记录: |