iOS ऐप में डिवाइस पहचानना
iOS एप्लिकेशन विकसित करते समय, हमें अक्सर यह जानने की आवश्यकता होती है कि ऐप किस डिवाइस पर इंस्टॉल है, ताकि हम डिवाइस के अनुसार कस्टम फीचर्स प्रदान कर सकें। उदाहरण के लिए, हम iPhone X पर कुछ फीचर देना चाहते हैं लेकिन iPhone 7 पर नहीं। इस लेख में हम iOS ऐप का उपयोग करके उपयोग में आने वाले iOS डिवाइस का पता लगाना सीखेंगे।
मुख्य शब्दावली
- utsname - यह iOS के डार्विन मॉड्यूल में स्थित एक संरचना है
- uname - यह एक फंक्शन है जो utsname को इनपुट के रूप में लेता है और Int32 आउटपुट देता है
- Mirror - किसी भी प्रकार के इंस्टेंस की सबस्ट्रक्चर और डिस्प्ले स्टाइल का प्रतिनिधित्व
iOS SDK में उपयोग में आने वाले डिवाइस को ढूंढना एक सरल कार्य है। यदि हमें केवल मॉडल या नाम चाहिए, तो हम नीचे दिए गए किसी भी कोड का उपयोग कर सकते हैं, जो एक स्ट्रिंग लौटाएगा। लेकिन उपरोक्त कोड सटीक डिवाइस नहीं बताता, यह केवल बताता है कि iPhone उपयोग में है। सटीक डिवाइस जानने के लिए हमें कुछ चरणों से गुजरना होगा।
Swift में डिवाइस पहचानकर्ता प्राप्त करना
Swift में हम उपरोक्त सभी शब्दों का उपयोग करके डिवाइस नंबर आउटपुट के रूप में प्राप्त करेंगे:
func getDevice() -> String {
var systemInfo = utsname()
uname(&systemInfo)
let machineMirror = Mirror(reflecting: systemInfo.machine)
let identifier = machineMirror.children.reduce("") { identifier, element in
guard let value = element.value as? Int8, value != 0 else { return identifier }
return identifier + String(UnicodeScalar(UInt8(value)))
}
return identifier
}
यह फंक्शन हमें मॉडल कोड देता है लेकिन सटीक डिवाइस नाम नहीं। हमें इस "identifier" वेरिएबल की तुलना कई मानों से करनी होगी ताकि आवश्यकता के अनुसार मॉडल नाम प्राप्त हो सके।
उदाहरण आउटपुट
जब हम iOS 12.0 पर चल रहे iPhone 7 Plus सिम्युलेटर पर कोड चलाते हैं, तो यह इस तरह दिखता है:

Apple डिवाइस के मॉडल कोड और नाम
| मॉडल कोड | डिवाइस नाम |
|---|---|
| iPod4,1 | iPod Touch 4G |
| iPod5,1 | iPod Touch 5G |
| iPod7,1 | iPod Touch 6G |
| iPhone3,1 , iPhone3,2 , iPhone3,3 | iPhone 4 |
| iPhone4,1 | iPhone 4s |
| iPhone5,1 , iPhone5,2 | iPhone 5 |
| iPhone5,3 , iPhone5,4 | iPhone 5c |
| iPhone6,1 , iPhone6,2 | iPhone 5s |
| iPhone7,2 | iPhone 6 |
| iPhone7,1 | iPhone 6 Plus |
| iPhone8,1 | iPhone 6s |
| iPhone8,2 | iPhone 6s Plus |
| iPhone8,4 | iPhone SE |
| iPhone9,1 , iPhone9,3 | iPhone 7 |
| iPhone9,2 , iPhone9,4 | iPhone 7 Plus |
| iPad2,1 , iPad2,2 , iPad2,3 , iPad2,4 | iPad 2 |
| iPad3,1 , iPad3,2 , iPad3,3 | iPad 3 |
| iPad3,4 , iPad3,5 , iPad3,6 | iPad 4 |
| iPad4,1 , iPad4,2 , iPad4,3 | iPad Air |
| iPad5,3 , iPad5,4 | iPad Air 2 |
| iPad2,5 , iPad2,6 , iPad2,7 | iPad Mini |
| iPad4,4 , iPad4,5 , iPad4,6 | iPad Mini 2 |
| iPad4,7 , iPad4,8 , iPad4,9 | iPad Mini 3 |
| iPad5,1 , iPad5,2 | iPad Mini 4 |
| iPad6,3 , iPad6,4 | iPad Pro (9.7 inch) |
| iPad6,7 , iPad6,8 | iPad Pro (12.9 inch) |
नोट: नए डिवाइस मॉडल के लिए यह सूची अपडेट करते रहना चाहिए।