Ответ 1
Вот что вам нужно сделать, чтобы добавить специальные слои среды.
-
Скопируйте исходный файл
ProjectName.Info.plist
вProjectName_Dev.Info.plist
,ProjectName_Test.Info.plist
иProjectName_Staging.Info.plist
и добавьте их в проект. -
Нажмите имя проекта в
Project Navigator
, выберитеTarget
, затем выберите вкладкуBuild Phases
. -
Введите
Info.plist
в строке поиска вверху справа, чтобы фильтровать Info.plist. -
Из
Copy Bundle Resources
удалите все плиты, кромеProjectName.Info.plist
-
Теперь нажмите на пункт меню
Editor -> Add Build Phase -> Add Run Script Build Phase
. -
Наконец, скопируйте следующую оболочку script в новую добавленную фазу сборки.
Обязательно замените ProjectName
на свое название проекта!
if [ "${CONFIGURATION}" == "Dev" ]; then
cp -r "${PROJECT_DIR}/ProjectName/ProjectName-Info_Dev.plist" "${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app/ProjectName-Info.plist"
echo "DEV plist copied"
elif [ "${CONFIGURATION}" == "Test" ]; then
cp -r "${PROJECT_DIR}/ProjectName/ProjectName-Info_Test.plist" "${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app/ProjectName-Info.plist"
echo "Beta plist copied"
elif [ "${CONFIGURATION}" == "Staging" ]; then
cp -r "${PROJECT_DIR}/ProjectName/ProjectName-Info_Staging.plist" "${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app/ProjectName-Info.plist"
echo "Beta plist copied"
elif [ "${CONFIGURATION}" == "Prod" ]; then
cp -r "${PROJECT_DIR}/ProjectName/ProjectName-Info_Prod.plist" "${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app/ProjectName-Info.plist"
echo "Beta plist copied"
fi
Или просто:
cp -r "${PROJECT_DIR}/ProjectName/ProjectName-Info_${CONFIGURATION}.plist" "${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app/ProjectName-Info.plist"
ПРИМЕЧАНИЕ. Я предполагаю, что вы уже создали схемы сборки с переменными среды Dev, Test, Staging и Production.
Получите помощь из этой статьи. http://www.dosomethinghere.com/2013/09/21/different-settings-app-entries-for-debug-vs-release-builds/