MobileGestalt
LibMobileGestalt.dylib iOS özelliklerinin tümü için merkezi bir depo sağlar. OS X'in bir parçası olan Gestalt'a benzer olabilir CoreServices. OS X'in Gestalt'ı, örneğin Gestalt Manager olarak belgelenmiştir ve 10.8 itibarıyla kullanımdan kaldırılmıştır. MobileGestalt , özel bir kitaplık olduğu için Apple tarafından tamamen belgelenmemiştir.
MobileGestalt, farklı simülatörlerde uyumlu olabilecek veya olmayabilecek sistem özelliklerinin test edilmesine izin verir.
İOS'taki pek çok sistem işlemi ve uygulaması, /usr/lib/libMobileGestalt.dylib adresinde bulunan MobileGestalt'a güveniyor. Daha çok temel bir kitaplıktır, ancak açık API'leri Apple çerçeve kurallarını takip eder ve MGörneğin API önekini kullanır MGIsDeviceOneOfType.
İOS dosya sisteminde MobileGestalt'ı ararsanız, bulamazsınız - tüm özel çerçeveler ve kitaplıklar gibi, /System/Library/Caches/...etc'ye önceden bağlanmıştır. Bilgisayar korsanlığını ve kalem testini seviyorsanız, çıkarmak için araçları kullanabilirsiniz.
MobileGestalt, sistemin çeşitli yönleri hakkında pek çok bilgi - yaklaşık 200 sorgu - sağlar. Burda biraz var.
libMobileGestalt.dylib
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");
Yüzlercesi de örneğin vardır AirplaneMode, MobileEquipmentIdentifiervs.
MobileGestalt, OSType seçici kodlarının bir tablosunu tutar. örneğin : libMobileGestalt MobileGestalt.c: 890: MGIsDeviceOneOfType mesajındaki c: 890 bu platformda desteklenmemektedir. Bu durumda MobileGestalt kitaplığınınMGIsDeviceOneOfType bir yöntemidir .
Simülatör versiyonunu kontrol etmek yerine, simülatörün yeteneklerini doğrudan sorgulamak için ayrı bir seçici bulunmaktadır. Mesajlar büyük olasılıkla simülatör sürümleri ile Xcode sürümleri ve / veya simülatördeki desteklenmeyen API'ler arasındaki uyumsuzlukları gösterir.