I have used @abhinav approach, but slightly modified it to fit my project's needs. We have two targets, BUT both are are used to build separate applications from.
steps
On the filesystem in project's directory create the folders structure:
<project_folder>/Settings/debug
<project_folder>/Settings/production
In the project create these Groups:
Settings
debug
production
Create a Settings.bundle, add it to debug group and save it to debug folder. (do not add it to any target)
Edit the .plistin a way that you'd like the most wide settings page would look like (usually, the Debug builds have more settings).
Copy the bundle from debug folder to production folder
Add Settings.bundle from production folder to production group in the project (do not add it to any target), so you have this structure

Make sure none of Settings.bundles is added to any target
Remove setting items from production .plist you don't want to be shipped with App Store builds.
Add Run Script phase after Copy Bundle Resources phase
if [ "${CONFIGURATION}" = "Release" ]; then
cp -r ${PROJECT_DIR}/Settings/production/Settings.bundle "${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app"
fi
if [ "${CONFIGURATION}" = "Debug" ]; then
cp -r ${PROJECT_DIR}/Settings/debug/Settings.bundle "${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app"
fi
Note: I have two build schemes: Release and Debug. I have wrapped paths in quotation marks, because my target has the name with spaces.