MobileGestalt
libMobileGestalt.dylibให้พื้นที่เก็บข้อมูลกลางสำหรับทุกคุณสมบัติของ iOS มันอาจจะคล้ายกับ OS X ของ Gestalt CoreServices
ซึ่งเป็นส่วนหนึ่งของ Gestalt ของ OS X ได้รับการจัดทำเป็นเอกสารตัวอย่างเช่นGestalt Managerและเลิกใช้งานแล้วเมื่อวันที่ 10.8 MobileGestaltไม่ได้รับการรับรองจาก Apple ทั้งหมดเนื่องจากเป็นห้องสมุดส่วนตัว
MobileGestalt ช่วยให้สามารถทดสอบคุณสมบัติของระบบที่อาจเข้ากันได้กับเครื่องจำลองต่างๆ
กระบวนการระบบและแอพบางส่วนใน iOS พึ่งพา MobileGestalt ซึ่งอยู่ที่ /usr/lib/libMobileGestalt.dylib มันขึ้นจากห้องสมุดพื้นฐาน แต่ APIs สัมผัสมันเป็นไปตามอนุสัญญากรอบแอปเปิ้ลและใช้MG
คำนำหน้า API MGIsDeviceOneOfType
สำหรับตัวอย่างเช่น
หากคุณมองหา MobileGestalt บนระบบไฟล์ iOS คุณจะไม่พบมันเช่นเดียวกับเฟรมเวิร์กและไลบรารีส่วนตัวทั้งหมดมันถูกเชื่อมไว้ล่วงหน้าใน /System/Library/Caches/...etc หากคุณชอบการแฮ็กและการทดสอบปากกาคุณสามารถใช้เครื่องมือเพื่อดึงข้อมูลได้
MobileGestalt ให้ข้อมูลมากมาย - ประมาณ 200 คำถามหรือมากกว่านั้น - ในแง่มุมต่างๆของระบบ นี่คือบางส่วน
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");
มีหลายร้อยมากขึ้นเช่นมีAirplaneMode
, MobileEquipmentIdentifier
ฯลฯ
MobileGestalt เก็บรักษาตารางรหัสตัวเลือก OSType ตัวอย่างเช่นc: 890ในข้อความ: libMobileGestalt MobileGestalt.c: 890: MGIsDeviceOneOfType ไม่รองรับบนแพลตฟอร์มนี้ ในกรณีนี้MGIsDeviceOneOfType
เป็นวิธีการที่ห้องสมุด MobileGestalt
แทนที่จะตรวจสอบเวอร์ชันจำลองจะมีตัวเลือกแยกต่างหากสำหรับการสืบค้นความสามารถของโปรแกรมจำลองโดยตรง ข้อความส่วนใหญ่บ่งบอกถึงความเข้ากันไม่ได้ระหว่างเวอร์ชันจำลองและเวอร์ชัน Xcode และ / หรือ API ที่ไม่รองรับบนเครื่องจำลอง