Добавьте макрос препроцессора в настройки сборки вашей цели в Apple LLVM 7.0 - Предварительная обработка.Затем в Debug добавьте что-то вроде:
isRunningInDevModeWithDevProfile=1
Затем в вашем .pch вы можете сделать что-то вроде этого:
// AZ - 01282016 - Determine which environment we are running in for APNS
# ifdef isRunningInDevModeWithDevProfile
# define isAPNSSandbox YES
#else
# define isAPNSSandbox NO
#endif
И тогда, где вам нужнопроверить это в своем коде, вы можете сделать это:
NSString *ifAppIsRunningFromXcodeUsingNonReleaseProfile;
if (isAPNSSandbox) {
ifAppIsRunningFromXcodeUsingNonReleaseProfile = @"dev";
} else {
ifAppIsRunningFromXcodeUsingNonReleaseProfile = @"prod";
}
Мы передаем это значение обратно на наш сервер APNS, чтобы он знал, какой путь выбрать при вызове Apple APNS.
ПричинаЯ полагаю, что в этом случае, если вы оставите макрос препроцессора неопределенным в целевых объектах, отличных от Debug, это не вызовет ошибку при попытке его построить.
Конечно, есть решения с лучшей формой, но это довольно безопасный и быстрый способ запустить и запустить эту функцию.