Estou criando um aplicativo que processa dados confidenciais de cartão de crédito.
Se meu código estiver sendo executado no modo de depuração, desejo registrar esses dados no console e fazer alguns despejos de arquivos.
No entanto, na versão final da appstore (ou seja, quando está sendo executada no modo de lançamento), é essencial que tudo isso esteja desativado (risco de segurança)!
Vou tentar responder minha pergunta da melhor maneira possível; então a pergunta se torna: 'Esse caminho da solução é a melhor ou a melhor maneira de fazê-lo?'
// 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
isso não funciona. Como posso inicializar um botão ou registrar algo no console, você pode editar sua pergunta?Para uma solução em Swift, consulte este tópico no SO.
Basicamente, a solução no Swift ficaria assim:
Além disso, você precisará definir o
DEBUG
símbolo naSwift Compiler - Custom Flags
seção daOther Swift Flags
chave por meio de uma-D DEBUG
entrada. Veja a seguinte captura de tela para um exemplo:fonte
Other Swift Flags
chave não aparecerá a menos que você selecioneAll
ecombined
acimaA Apple já inclui um
DEBUG
sinalizador nas compilações de depuração, para que você não precise definir seu próprio.Você também pode considerar redefinir
NSLog
para uma operação nula quando não estiver noDEBUG
modo, para que seu código seja mais portátil e você possa usar apenasNSLog
instruções regulares :fonte
A maioria das respostas disse que como definir #ifdef DEBUG e nenhuma delas diz como determinar a compilação de depuração / lançamento.
Minha opinião:
Edite o esquema -> execute -> configure a configuração: escolha debug / release. Ele pode controlar o simulador e o status do código do seu iPhone de teste.
Esquema de edição -> arquivo morto -> configuração da compilação: escolha depuração / liberação. Ele pode controlar o aplicativo do pacote de teste e o status do código do aplicativo da App Store.
fonte
Archive
modoDebug
e enviei o aplicativo para a loja de aplicativos. Ao verificar o resultado após o download do aplicativo no iTunes, ele simplesmente não funciona. Portanto, verifique se issoDEBUG/RELEASE
funciona apenas quando o modo respectivo é selecionadoBuild/Run/Archive
.Swift e Xcode 10+
#if DEBUG
passará em QUALQUER desenvolvimento / compilação ad-hoc, dispositivo ou simulador. É apenas falso para as compilações da App Store e do TestFlight.Exemplo:
fonte
a resposta de zitao xiong está bem próxima do que eu uso; Eu também incluo o nome do arquivo (removendo o caminho de FILE ).
fonte
No xcode 7, há um campo no Apple LLVM 7.0 - pré-processamento , chamado " Macros de pré-processadores não usados em pré-compilados ... "? Coloquei DEBUG na frente do Debug e ele funciona para mim usando o código abaixo:
fonte
Apenas mais uma ideia para detectar:
DebugMode.h
DebugMode.m
adicione no arquivo de ponte de cabeçalho:
#include "DebugMode.h"
uso:
DebugMode.isDebug()
Não é necessário escrever algo dentro dos sinalizadores rápidos das propriedades do projeto.
fonte
Não tenho certeza se eu respondi sua pergunta, talvez você possa tentar estes códigos:
fonte