5

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

提前致谢

我设法从目标中删除 Settings.bundle 并将此脚本添加到构建阶段来完成此操作:

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

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

4

2 回答 2

9

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

您需要添加一个构建阶段以根据您正在使用的构建配置包含/排除您的设置包。查看如何在 Xcode 中有条件地包含基于构建配置的文件?寻求帮助。

于 2013-01-10T21:15:35.310 回答
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)。因此,您可以在构建后保留实际文件。

于 2019-02-20T13:49:53.973 回答