我正在将我的 iOS 应用程序的 Firebase 依赖项从 CocoaPods 转移到 Swift 包管理器。
Firebase 的 Crashlytics 需要在构建应用程序时执行脚本(使用运行脚本构建阶段)。回到 CocoaPods 时代,我曾经以 documented by Google 的方式调用脚本: "${PODS_ROOT}/FirebaseCrashlytics/run"
.
切换到 SPM 后,Firebase 文件不再位于 ${PODS_ROOT}
中,并且根本没有这样的变量可用。我知道我需要的文件现在位于 DerivedData
文件夹,具体位于 ~/Library/Developer/Xcode/DerivedData/MyApp-abcde/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run
.问题是, MyApp-abcde
文件夹不容易被引用。
A Medium post I found建议使用 ${BUILD_DIR}
构建变量(对于上面的示例,它将解析为 <…>/MyApp-abcde/Build/Products
),并调用 dirname
命令向上移动目录层次结构。
此 hack 仅适用于运行应用程序。当我尝试存档时,${BUILD_DIR}
解析到另一条路径,即<…>/MyApp-abcde/Build/Intermediates.noindex/ArchiveIntermediates/MyApp/BuildProductsPath
.我尝试了更多的构建变量,例如 ${SYMROOT}
, 代替 ${BUILD_DIR}
,但它们也会根据操作产生不同的路径。
那么,问题来了……
有没有办法可靠地引用我的应用程序的派生数据文件夹的根 (即 ~/Library/Developer/Xcode/DerivedData/MyApp-abcde
)使用 Xcode 的构建变量?
最佳答案
你很亲密。这应该有效:
${BUILD_DIR%Build/*}SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run
关于ios - 如何访问我的应用程序的派生数据文件夹本身?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64598321/