Я делаю приложение, которое обрабатывает конфиденциальные данные кредитной карты.
Если мой код работает в режиме отладки, я хочу записать эти данные в консоль и сделать несколько дампов файлов.
Однако в окончательной версии магазина приложений (то есть, когда он работает в режиме выпуска) важно, чтобы все это было отключено (угроза безопасности)!
Я постараюсь ответить на мой вопрос как можно лучше; поэтому возникает вопрос: «Является ли этот путь решения правильным или лучшим способом сделать это?»
// add `IS_DEBUG=1` to your debug build preprocessor settings
#if( IS_DEBUG )
#define MYLog(args...) NSLog(args)
#else
#define MYLog(args...)
#endif
#ifdef DEBUG NSLog@("Something");#else//#endif
это не работает. Как я могу инициализировать кнопку или записать что-то на консоль, пожалуйста, вы можете отредактировать свой вопрос?Для решения в Swift, пожалуйста, обратитесь к этой теме на SO.
В основном решение в Swift будет выглядеть так:
Кроме того, вам необходимо установить
DEBUG
символ вSwift Compiler - Custom Flags
разделе дляOther Swift Flags
ключа через-D DEBUG
запись. Смотрите следующий скриншот для примера:источник
Other Swift Flags
ключ не появится, если вы не выберетеAll
иcombined
вышеApple уже включает
DEBUG
флаг в отладочные сборки, поэтому вам не нужно определять свой собственный.Возможно, вы также захотите просто переопределить
NSLog
нулевую операцию, когда не вDEBUG
режиме, так ваш код будет более переносимым, и вы можете просто использовать регулярныеNSLog
операторы:источник
В большинстве ответов говорилось о том, как установить #ifdef DEBUG, и ни в одном из них не говорилось, как определить сборку отладки / выпуска.
Мое мнение:
Изменить схему -> запустить -> построить конфигурацию: выбрать отладку / выпуск. Он может управлять симулятором и статусом кода вашего тестового iPhone.
Редактировать схему -> Архив -> Конфигурация сборки: выбрать отладку / выпуск. Он может контролировать тестовый пакет приложения и статус кода приложения App Store.
источник
Archive
режимDebug
и отправил приложение в магазин приложений. При проверке результата после загрузки приложения из iTunes оно просто не работает. Поэтому убедитесь, чтоDEBUG/RELEASE
работает только при выборе соответствующего режима вBuild/Run/Archive
.Swift и Xcode 10+
#if DEBUG
перейдет в ЛЮБУЮ разработку / специальную сборку, устройство или симулятор. Это ложно только для сборок App Store и TestFlight.Пример:
источник
ответ Зитао Сюн очень близок к тому, что я использую; Я также включать в себя имя файла (отгонка пути FILE ).
источник
В xcode 7 в Apple LLVM 7.0 есть поле - предварительная обработка , которое называется « Макросы препроцессоров, не используемые в скомпилированных ... »? Я поставил DEBUG перед Debug, и он работает для меня, используя следующий код:
источник
Еще одна идея, чтобы обнаружить:
DebugMode.h
DebugMode.m
добавить в заголовочный файл моста:
#include "DebugMode.h"
использование:
DebugMode.isDebug()
Не нужно что-то писать в свойствах проекта swift flags.
источник
Не уверен, если я отвечу на ваш вопрос, может быть, вы могли бы попробовать этот код:
источник