çalıştırılıyor eğer IOS uygulama XCode dan (simülatörü ya da bağlı bir cihaz üzerinde) doğrudan çalışacak olup olmadığını programlı belirlemek istiyoruz algılar. Ben -D DEBUG çözüm here tarif denedim ama sonra Xcode bağlantısını kesmek ve uygulamayı yeniden çalıştırdığınızda, hala onu hata ayıklama modunda olduğunu düşünür. ben ne arıyorum Sadece C fonksiyonunu tutmak ve Swift dan diyebiliriz this functionSwift uygulama Xcode
#include <assert.h>
#include <stdbool.h>
#include <sys/types.h>
#include <unistd.h>
#include <sys/sysctl.h>
static bool AmIBeingDebugged(void)
// Returns true if the current process is being debugged (either
// running under the debugger or has a debugger attached post facto).
{
int junk;
int mib[4];
struct kinfo_proc info;
size_t size;
// Initialize the flags so that, if sysctl fails for some bizarre
// reason, we get a predictable result.
info.kp_proc.p_flag = 0;
// Initialize mib, which tells sysctl the info we want, in this case
// we're looking for information about a specific process ID.
mib[0] = CTL_KERN;
mib[1] = KERN_PROC;
mib[2] = KERN_PROC_PID;
mib[3] = getpid();
// Call sysctl.
size = sizeof(info);
junk = sysctl(mib, sizeof(mib)/sizeof(*mib), &info, &size, NULL, 0);
assert(junk == 0);
// We're being debugged if the P_TRACED flag is set.
return ((info.kp_proc.p_flag & P_TRACED) != 0);
}
Arayabilirsiniz C fonksiyonları Swift'den, onu gerçekten çevirmene gerek yok. –
Martin, bu benim koyduğum cevaptı, bir cevap olarak yerleştirdim ve bunu kabul ediyorum. – Knight0fDragon
Kodu, Swift'e (eğlenmek için) dönüştürmek için hızlı, denenmemiş bir girişim: https://gist.github.com/getaaron/8d48489274a873835636. Şu an bununla oynamak için zamanım yok, ama belki başlaman gerekecek. –