Firebase iOS SDK - 使用 GoogleService-Info.plist 以外的配置文件会生成控制台警告

问题描述 投票:0回答:3

我正在使用 Firebase 3.x SDK 运行一个应用程序,并希望有条件地使用不同的配置 .plist 来指向不同的 Firebase 位置,具体取决于该应用程序是配置为开发还是生产。

我正在尝试使用 FIRApp 的

configureWithOptions
来完成此操作,其中我为作为参数传递的
FIROptions
设置了不同的 plist 路径。但是,当我使用“GoogleService-Dev-Info.plist”之类的路径时,我收到来自 Firebase/Core 的控制台警告,指出找不到“GoogleService-Info.plist”。我看到
FIROptions
对象的所有属性都填充了我在 GoogleService-Dev-Info.plist 文件中所期望的内容,所以我不确定我不理解什么。 Firebase SDK 中是否有硬编码的内容可以转到 GoogleService-Info.plist,无论传入的任何选项如何?

ios firebase
3个回答
2
投票

如果其他人有同样的疑问,Swift 3 中的代码示例如下:

let firebaseOptions = FirebaseOptions(contentsOfFile: Bundle.main.path(forResource: "GoogleService-Dev-Info", ofType: ".plist")!)
FirebaseApp.configure(options: firebaseOptions!)

0
投票

我找到了答案。由于我对 CocoaPods 的工作原理一无所知,在进行 pod 安装时,我实际上并没有安装最新版本的 Firebase。运行 Pod 更新更新了我的 Firebase 版本,控制台警告消失了。


0
投票

虽然 thacilima 之前的答案有助于在运行时选择正确的 plist(例如用于暂存或生产),但它对 Crashlytics 上传 dsym 没有帮助,因为这种情况发生在构建时,并且它不知道要使用哪个文件。

我找到了一种不同的方法来解决这个问题:

  1. 命名您的两个文件,例如 一个。 GoogleService-Info-Stage.plist b. GoogleService-Info-Production.plist

  2. 在您的项目目标中,转到“构建设置”并创建一个新的“用户定义”设置。称之为:GOOGLE_SERVICE_INFO_PLIST_PATH

  3. 对于每种构建类型添加适当的文件路径,例如:

$(PROJECT_DIR)/AppName/GoogleService-Info-Stage.plist

  1. 在构建阶段中,添加一个新的运行脚本阶段,并让它复制正确的文件,例如
echo "PROJECT_DIR: ${PROJECT_DIR}"
echo "BUILT_PRODUCTS_DIR: ${BUILT_PRODUCTS_DIR}"
echo "PRODUCT_NAME: ${PRODUCT_NAME}"

PLIST_SOURCE_PATH="${GOOGLE_SERVICE_INFO_PLIST_PATH}"
PLIST_DESTINATION_PATH="${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app/GoogleService-Info.plist"

echo "PLIST_SOURCE_PATH: $PLIST_SOURCE_PATH"
echo "PLIST_DESTINATION_PATH: $PLIST_DESTINATION_PATH"

if [ -e "$PLIST_SOURCE_PATH" ]; then
    cp "$PLIST_SOURCE_PATH" "$PLIST_DESTINATION_PATH"
    echo "Copied $PLIST_SOURCE_PATH to $PLIST_DESTINATION_PATH"
else
    echo "Error: $PLIST_SOURCE_PATH does not exist."
    exit 1
fi
  1. 更新上传 dsym 的 Firebase 脚本:

“${PODS_ROOT}/FirebaseCrashlytics/run”-gsp“${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app/GoogleService-Info.plist”

© www.soinside.com 2019 - 2024. All rights reserved.