【问题标题】:Show Settings Bundle only for Debug Mode仅针对调试模式显示设置包
【发布时间】:2012-12-25 09:06:33
【问题描述】:

我正在使用this tutorial 在我的应用程序中创建一个简单的设置包。 问题是我想在发布版本中完全隐藏设置,但我找不到办法。我已经阅读了this question,但我仍然不清楚。

提前致谢

我设法从目标中删除 Settings.bundle 并将这个脚本添加到构建阶段:

if [ ${CONFIGURATION} == "Debug" ]; then
cp -r ${PROJECT_DIR}/HotelZilla/Classes/Settings/Settings.bundle ${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app
fi

但是还是有问题。如果我删除该应用程序然后在发布方案模式下启动它,则设置包不会出现。然后,我更改为调试方案并重建,设置出现,但是,如果我再次切换到发布,设置仍然存在,所以似乎如果我向发布应用程序添加设置,我将永远无法再次删除捆绑包。对吗?

【问题讨论】:

    标签: ios debugging macros settings.bundle


    【解决方案1】:

    如果您使用设置包进行设置,则需要在发布配置中将其从应用的构建过程中排除。 #ifdef DEBUG 宏只会帮助您处理要从编译中排除的代码 - 它不会帮助排除设置包。

    您需要添加一个构建阶段以根据您正在使用的构建配置包含/排除您的设置包。查看How can I conditionally include a file based on build configuration in Xcode? 以获得有关此操作的帮助。

    【讨论】:

    • 成功了。但我有一个问题。我从目标中删除了设置包,并使用了我在上面的问题中添加的脚本。问题是,如果我在 Debug 中构建,然后在 Release 中构建,设置包不会消失,所以如果我犯了错误并将其发布到生产中,我将永远无法再次删除设置包?
    • 构建到模拟器不会从模拟器中删除之前构建中的文件。这也适用于设备上的设备构建。但是,这只影响运行而不影响构建本身——不同配置的构建存储在 ~/Library/Developer/Xcode/DerivedData//Build/Products/ 内的不同文件夹中。所以这个额外的文件不会出现在你构建的任何档案中。商店提交基于档案。
    • 您还可以在构建脚本中有一个步骤来根据构建配置删除文件。这将解决您的模拟器问题。
    【解决方案2】:

    这可以通过运行脚本来完成。

    • 选择项目

    • 选择目标

    • 切换到Build Phases标签

    • Add Build Phase (+) 按钮

    • 选择Add Run Script

    添加脚本:

    if [ "${CONFIGURATION}" == "Debug" ]; then
    cp -r "${PROJECT_DIR}/${PRODUCT_NAME}/Settings/Settings_Debug.bundle/Root.plist" "${PROJECT_DIR}/${PRODUCT_NAME}/Settings.bundle/Root.plist"
    echo "Debug settings bundle copied"
    else
    cp -r "${PROJECT_DIR}/${PRODUCT_NAME}/Settings/Settings_Release.bundle/Root.plist" "${PROJECT_DIR}/${PRODUCT_NAME}/Settings.bundle/Root.plist"
    echo "Release settings bundle copied"
    fi
    

    注意:您需要创建 3 个设置包(Settings.bundle, Settings_Debug.bundle、Settings_Release.bundle)。因此,您可以在构建后保留实际文件。

    【讨论】:

      猜你喜欢
      • 2023-01-31
      • 2016-03-06
      • 2014-08-17
      • 2010-09-20
      • 1970-01-01
      • 2023-02-05
      • 2021-06-11
      • 2020-10-22
      • 2019-06-14
      相关资源
      最近更新 更多