我正在使用this tutorial在我的应用中创建一个简单的设置包。 问题是我想在发布版本中完全隐藏设置,我找不到办法。我读过this question但我现在还不清楚。
提前致谢
我设法完成此操作,从目标中删除Settings.bundle并将此脚本添加到Build Phase:
if [ ${CONFIGURATION} == "Debug" ]; then
cp -r ${PROJECT_DIR}/HotelZilla/Classes/Settings/Settings.bundle ${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app
fi
但仍有问题。如果我删除应用程序然后在发布方案模式下启动它,则不会显示设置包。然后,我进入调试方案并重建,设置出现,但是,如果然后我再次切换到Release,设置仍然存在,所以似乎如果我添加一个设置到Release应用程序,我永远不能再删除该包。是吗?
答案 0 :(得分:7)
如果您正在为设置使用设置包,则需要在发布配置中将其从应用的构建过程中排除。 #ifdef DEBUG
宏只会帮助您处理要从编译中排除的代码 - 它无助于排除设置包。
您需要添加构建阶段,以根据您正在使用的构建配置来包含/排除您的设置包。请查看How can I conditionally include a file based on build configuration in Xcode?以获取有关此操作的帮助。
答案 1 :(得分:0)
这可以通过运行脚本来完成。
选择项目
选择目标
切换到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)。这样您就可以在构建后保留实际文件。