代码之家  ›  专栏  ›  技术社区  ›  NSNoob

从Crashlytics迁移到Firebase时,如何在一个iOS应用程序中处理多个方案/目标?

  •  2
  • NSNoob  · 技术社区  · 6 年前

    我的场景是,在我的应用程序中,我有四个不同的方案(四个目标),四个不同的捆绑标识对应于我的开发人员、内部qa、客户端qa和实时服务器。

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
        <key>AD_UNIT_ID_FOR_BANNER_TEST</key>
        <string>XXXXXXXX</string>
        <key>AD_UNIT_ID_FOR_INTERSTITIAL_TEST</key>
        <string>XXXXXXXXX</string>
        <key>CLIENT_ID</key>
        <string>XXXXXXXXXX</string>
        <key>REVERSED_CLIENT_ID</key>
        <string>XXXXX</string>
        <key>API_KEY</key>
        <string>XXXXXX</string>
        <key>GCM_SENDER_ID</key>
        <string>XXXXXXX</string>
        <key>PLIST_VERSION</key>
        <string>1</string>
        <key>BUNDLE_ID</key>
        <string>[MY SCHEME BUNDLE ID]</string>
        <key>PROJECT_ID</key>
        <string>[MY PROJECT ID]</string>
        <key>STORAGE_BUCKET</key>
        <string>XXXXXXXXX</string>
        <key>IS_ADS_ENABLED</key>
        <true></true>
        <key>IS_ANALYTICS_ENABLED</key>
        <false></false>
        <key>IS_APPINVITE_ENABLED</key>
        <false></false>
        <key>IS_GCM_ENABLED</key>
        <true></true>
        <key>IS_SIGNIN_ENABLED</key>
        <true></true>
        <key>GOOGLE_APP_ID</key>
        <string>XXXXXXXXX</string>
        <key>DATABASE_URL</key>
        <string>XXXXXXXXXXX</string>
    </dict>
    </plist>
    

    1 回复  |  直到 6 年前
        1
  •  5
  •   Mehul Thakkar    6 年前

    下面是我在项目中如何处理相同的事情。我用不同的名称保存了4个GoogleService-Info.Plist文件,并将它们保存在我项目的文件夹中。但请确保,您没有在project navigator中添加相同的文件。(因此,这4个文件将驻留在我的project文件夹中,但不在我的project中。简而言之,它不会自动编译。)

    下面是如何完成上述步骤。

    1. Target1
    2. 现在,选择顶部可用选项卡中的“构建阶段”。
    3. 在这里,您将看到左上角的“+”按钮。点击它。
    4. New Run Script Phase 从那里开始。它将在您的列表中添加一个名为的新运行脚本 Run Script RunScriptForGooglePlist .
    5. 会有 Shell 有价值 /bin/sh

    PATH_TO_GOOGLE_PLISTS="${PROJECT_DIR}/MyProjectFolder/GooglePlists"
    
    cp -r "$PATH_TO_GOOGLE_PLISTS/GoogleService-Info-dev.plist" "${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app/GoogleService-Info.plist"
    

    这里是代码的第一行,我选择了文件夹的路径,其中所有4个GooglePlist文件都有4个不同的名称。

    您必须对所有4个目标重复上述相同的过程,在上述代码的第二行中,只需根据给定目标的需要更改名称。