MobileGestalt
The libMobileGestalt.dylib menyediakan sebuah repositori pusat untuk semua properti iOS ini. Ini dapat dianalogikan dengan Gestalt OS X, yang merupakan bagian dari CoreServices
. Gestalt OS X didokumentasikan misalnya Gestalt Manager dan sudah tidak digunakan lagi mulai 10.8. MobileGestalt sepenuhnya tidak didokumentasikan oleh Apple karena merupakan perpustakaan pribadi.
MobileGestalt memungkinkan pengujian properti sistem yang mungkin kompatibel atau tidak pada simulator yang berbeda.
Beberapa proses sistem dan aplikasi di iOS mengandalkan MobileGestalt, yang terletak di /usr/lib/libMobileGestalt.dylib. Ini lebih merupakan perpustakaan dasar, tetapi API yang diekspos mengikuti konvensi kerangka kerja Apple dan menggunakan MG
awalan API misalnya MGIsDeviceOneOfType
.
Jika Anda mencari MobileGestalt di sistem file iOS, Anda tidak akan menemukannya - seperti semua framework dan pustaka pribadi, itu telah ditautkan sebelumnya ke /System/Library/Caches/...etc. Jika Anda suka meretas dan menguji pena maka Anda dapat menggunakan alat untuk mengekstraknya.
MobileGestalt menyediakan banyak informasi - sekitar 200 atau lebih kueri - tentang berbagai aspek sistem. Berikut ini beberapa.
libMobileGestalt.dylib
//Answers to MG queries
MGCopyAnswer(@"5MSZn7w3nnJp22VbpqaxLQ");
MGCopyAnswer(@"7mV26K/1a+wTtqiunvHMUQ");
MGCopyAnswer(@"BasebandAPTimeSync");
MGCopyAnswer(@"BasebandPostponementStatus");
MGCopyAnswer(@"BasebandPostponementStatusBlob");
MGCopyAnswer(@"BasebandSecurityInfoBlob");
MGCopyAnswer(@"BasebandStatus");
MGCopyAnswer(@"BuildVersion");
MGCopyAnswer(@"CoreRoutineCapability");
MGCopyAnswer(@"DeviceClass");
MGCopyAnswer(@"DeviceClassNumber");
MGCopyAnswer(@"DeviceName");
MGCopyAnswer(@"DeviceSupports1080p");
MGCopyAnswer(@"DeviceSupports720p");
MGCopyAnswer(@"DiskUsage");
MGCopyAnswer(@"GSDeviceName");
MGCopyAnswer(@"HWModelStr");
MGCopyAnswer(@"HasBaseband");
MGCopyAnswer(@"InternalBuild");
MGCopyAnswer(@"InverseDeviceID");
MGCopyAnswer(@"IsSimulator");
MGCopyAnswer(@"MLBSerialNumber");
MGCopyAnswer(@"MaxH264PlaybackLevel");
MGCopyAnswer(@"MinimumSupportediTunesVersion");
MGCopyAnswer(@"PasswordConfigured");
MGCopyAnswer(@"PasswordProtected");
MGCopyAnswer(@"ProductType");
MGCopyAnswer(@"ProductVersion");
MGCopyAnswer(@"RegionCode");
MGCopyAnswer(@"RegionalBehaviorNTSC");
MGCopyAnswer(@"RegionalBehaviorNoPasscodeLocationTiles");
MGCopyAnswer(@"ReleaseType");
MGCopyAnswer(@"SIMStatus");
Ada ratusan lebih misalnya AirplaneMode
, MobileEquipmentIdentifier
, dll
MobileGestalt memelihara tabel kode pemilih OSType. misalnya c: 890 di pesan: libMobileGestalt MobileGestalt.c: 890: MGIsDeviceOneOfType tidak didukung di platform ini. Dalam hal ini MGIsDeviceOneOfType
adalah metode pustaka MobileGestalt .
Alih-alih memeriksa versi simulator, terdapat pemilih terpisah untuk menanyakan langsung kemampuan simulator. Pesan yang paling mungkin menunjukkan ketidakcocokan antara versi simulator dan versi Xcode dan / atau API yang tidak didukung di simulator.