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
, MobileEquipmentIdentifier
vs.
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.