ios - 如何访问我的应用程序的派生数据文件夹本身?

标签 ios xcode firebase swift-package-manager xcode-build-settings

我正在将我的 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/

相关文章:

ios - 拆分 UICollectionView & UICollectionViewDataSource 显示黑屏

ios - 在 UITableView 滚动时在 MKMapView 上放置图钉,从特定屏幕位置的单元格获取坐标。制作引脚 "dance."

android - 如何清除flutter项目缓存?

ios - 带有约束的 Swift TextView 不可见

swift - 从自动 ID 数据库子项中检索数据

ios - 将 UIImage 从 URL 添加到 ruby​​motion 应用程序中的促销屏幕

ios - 多个按钮,但一次只能按下一个

iOS - 使用 Search API 进行 Google 购物

angularjs - 是否可以使用 Parse 在 AngularJS 应用程序中获得 3 路数据绑定(bind)?

java - FirebaseAuth 未创建用户