Saya membuat aplikasi yang memproses data kartu kredit sensitif.
Jika kode saya berjalan dalam mode debug saya ingin mencatat data ini ke konsol dan membuat beberapa dump file.
Namun pada versi appstore final (yaitu ketika sedang berjalan dalam mode rilis) sangat penting semua ini dinonaktifkan (bahaya keamanan)!
Saya akan mencoba menjawab pertanyaan saya sebaik mungkin; jadi pertanyaannya menjadi 'Apakah solusi ini tepat atau cara terbaik untuk melakukannya?'
// 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
ini tidak berhasil. Bagaimana saya bisa menginisialisasi tombol atau mencatat sesuatu ke konsol, bisakah Anda mengedit pertanyaan Anda?Untuk solusi di Swift silakan merujuk utas ini di SO.
Pada dasarnya solusi di Swift akan terlihat seperti ini:
Selain itu Anda perlu mengatur
DEBUG
simbol diSwift Compiler - Custom Flags
bagian untukOther Swift Flags
kunci melalui-D DEBUG
entri. Lihat tangkapan layar berikut untuk contoh:sumber
Other Swift Flags
kunci tidak akan muncul kecuali Anda memilihAll
dan dicombined
atasApple sudah menyertakan
DEBUG
flag dalam debug build, jadi Anda tidak perlu menentukan sendiri.Anda mungkin juga ingin mempertimbangkan hanya mendefinisikan ulang
NSLog
ke operasi nol ketika tidak dalamDEBUG
mode, sehingga kode Anda akan lebih portabel dan Anda hanya dapat menggunakan biasaNSLog
pernyataan :sumber
Sebagian besar jawaban mengatakan bahwa cara mengatur #ifdef DEBUG dan tidak ada yang mengatakan bagaimana cara menentukan debug / rilis build.
Pendapat saya:
Edit skema -> run -> build configuration: pilih debug / release. Ini dapat mengontrol simulator dan status kode pengujian iPhone Anda.
Edit skema -> arsip -> konfigurasi bangunan: pilih debug / lepaskan. Itu dapat mengontrol aplikasi paket tes dan status kode aplikasi App Store.
sumber
Archive
modeDebug
dan mengirimkan aplikasi ke app store. Saat memeriksa hasil setelah pengunduhan aplikasi dari iTunes, itu tidak berfungsi. Jadi pastikan ituDEBUG/RELEASE
hanya berfungsi saat dipilih masing-masing mode diBuild/Run/Archive
.Swift dan Xcode 10+
#if DEBUG
akan melewati pengembangan, perangkat, atau simulator ad-hoc APAPUN. Ini hanya salah untuk App Store dan build TestFlight.Contoh:
sumber
Jawaban zitao xiong cukup dekat dengan apa yang saya gunakan; Saya juga memasukkan nama file (dengan menghapus jalur FILE ).
sumber
Di xcode 7, ada bidang di bawah Apple LLVM 7.0 - preprocessing , yang disebut " Preprocessors Macros Not Used In Precompile ... "? Saya meletakkan DEBUG di depan Debug dan berfungsi untuk saya dengan menggunakan kode di bawah ini:
sumber
Hanya satu ide lagi untuk dideteksi:
DebugMode.h
DebugMode.m
tambahkan ke file header jembatan:
#include "DebugMode.h"
pemakaian:
DebugMode.isDebug()
Tidak perlu menulis sesuatu di dalam properti proyek dengan cepat.
sumber
Tidak yakin jika saya menjawab pertanyaan Anda, mungkin Anda dapat mencoba kode ini:
sumber