ChamomileGuides 3.0.4 Help

MDM 가이드 (IOS)

어드민 페이지 앱 등록

앱 관리

  1. 어드민 -> 시스템관리 -> 모바일 -> 앱 관리 https://chamomile.lotteinnovate.com/test/mob/

  2. 앱 등록

    2232-images.png

  3. 등록 완료

    2232-images.png

API

앱 정보 API 호출

  1. API (GET) https://chamomile.lotteinnovate.com/mobile-app-test/mobile/\(앱아이디)/info?osType=ios ex) appID: chamomileapp

  2. 결과 값

    2232-images.png

  3. 디바이스 체크 여부
    "deviceCheck" 가 true 일 경우, MDM을 대상 기기

기기등록 API 호출

  1. API (POST) https://chamomile.lotteinnovate.com/mobile-app-test/mobile/\(앱아이디)/device ex) appID: chamomileapp

  2. 결과값(등록, 업데이트)

    2232-images.png

기기 등록 이후 프로세스

헤더

  1. 이후 API 사용시 헤더에 deviceID와 appID를 추가한 상태로 호출한다.(EX)

    2232-images.png

쿠키

  1. WKWebView 로드시 쿠키에 삽입한다.

    2232-images.png

Device 정보

Device ID, Version, Type

  1. Device ID

static func getDeviceId() -> String { let keychain = Keychain(service: "kr.lay.HybridApp") var result = [String: Any]() guard keychain["UUID"] != nil else { do { try keychain .accessibility(.afterFirstUnlock) .set(UUID().uuidString, key: "UUID") } catch let error { print("error: \(error)") } let uuid = keychain["UUID"]! return uuid } let uuid = keychain["UUID"]! return uuid }
  1. Device Name

extension UIDevice { var modelName: String { var systemInfo = utsname() uname(&systemInfo) let modelCode = withUnsafePointer(to: &systemInfo.machine.0) { ptr in return String(cString: ptr) } let modelMap : [String: String] = [ // iPhone "iPhone3,1" : "iPhone 4", "iPhone3,2" : "iPhone 4", "iPhone3,3" : "iPhone 4", "iPhone4,1" : "iPhone 4s", "iPhone5,1" : "iPhone 5", "iPhone5,2" : "iPhone 5", "iPhone5,3" : "iPhone 5c", "iPhone5,4" : "iPhone 5c", "iPhone6,1" : "iPhone 5s", "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" : "iPhone 7", "iPhone9,3" : "iPhone 7", "iPhone9,2" : "iPhone 7 Plus", "iPhone9,4" : "iPhone 7 Plus", "iPhone10,1": "iPhone 8", "iPhone10,4": "iPhone 8", "iPhone10,2": "iPhone 8 Plus", "iPhone10,5": "iPhone 8 Plus", "iPhone10,3": "iPhone X", "iPhone10,6": "iPhone X", "iPhone11,2": "iPhone XS", "iPhone11,4": "iPhone XS Max", "iPhone11,6": "iPhone XS Max", "iPhone11,8": "iPhone XR", "iPhone12,1": "iPhone 11", "iPhone12,3": "iPhone 11 Pro", "iPhone12,5": "iPhone 11 Pro Max", "iPhone12,8": "iPhone SE (2nd generation)", "iPhone13,1": "iPhone 12 mini", "iPhone13,2": "iPhone 12", "iPhone13,3": "iPhone 12 Pro", "iPhone13,4": "iPhone 12 Pro Max", "iPhone14,4": "iPhone 13 mini", "iPhone14,5": "iPhone 13", "iPhone14,2": "iPhone 13 Pro", "iPhone14,3": "iPhone 13 Pro Max", "iPhone14,6": "iPhone SE (3rd generation)", "iPhone14,7": "iPhone 14", "iPhone14,8": "iPhone 14 Plus", "iPhone15,2": "iPhone 14 Pro", "iPhone15,3": "iPhone 14 Pro Max", "iPhone15,4": "iPhone 15", "iPhone15,5": "iPhone 15 Plus", "iPhone16,1": "iPhone 15 Pro", "iPhone16,2": "iPhone 15 Pro Max", // iPad "iPad1,1": "iPad 1", "iPad2,1": "iPad 2 (WiFi)", "iPad2,2": "iPad 2", "iPad2,3": "iPad 2 (CDMA)", "iPad2,4": "iPad 2", "iPad2,5": "iPad Mini 1", "iPad2,6": "iPad Mini 1", "iPad2,7": "iPad Mini 1", "iPad3,1": "iPad 3 (WiFi)", "iPad3,2": "iPad 3 (CDMA)", "iPad3,3": "iPad 3", "iPad3,4": "iPad 4 (WiFi)", "iPad3,5": "iPad 4", "iPad3,6": "iPad 4 (CDMA)", "iPad4,1": "iPad Air (WiFi)", "iPad4,2": "iPad Air (Cellular)", "iPad4,3": "iPad Air", "iPad4,4": "iPad Mini 2 (WiFi)", "iPad4,5": "iPad Mini 2 (Cellular)", "iPad4,6": "iPad Mini 2", "iPad4,7": "iPad Mini 3", "iPad4,8": "iPad Mini 3", "iPad4,9": "iPad Mini 3", "iPad5,1": "iPad Mini 4 (WiFi)", "iPad5,2": "iPad Mini 4 (Cellular)", "iPad5,3": "iPad Air 2", "iPad5,4": "iPad Air 2", "iPad6,3": "iPad Pro 9.7", "iPad6,4": "iPad Pro 9.7", "iPad6,7": "iPad Pro 12.9", "iPad6,8": "iPad Pro 12.9", "iPad6,11": "iPad 5 (WiFi)", "iPad6,12": "iPad 5 (Cellular)", "iPad7,1": "iPad Pro 12.9 (2nd generation) (WiFi)", "iPad7,2": "iPad Pro 12.9 (2nd generation) (Cellular)", "iPad7,3": "iPad Pro 10.5 (WiFi)", "iPad7,4": "iPad Pro 10.5 (Cellular)", "iPad7,5": "iPad 6 (WiFi)", "iPad7,6": "iPad 6 (Cellular)", "iPad7,11": "iPad 7 (WiFi)", "iPad7,12": "iPad 7 (Cellular)", "iPad8,1": "iPad Pro 11 (WiFi)", "iPad8,2": "iPad Pro 11 (WiFi, 1TB)", "iPad8,3": "iPad Pro 11 (WiFi, Cellular)", "iPad8,4": "iPad Pro 11 (WiFi, Cellular, 1TB)", "iPad8,5": "iPad Pro 12.9 (3rd generation) (WiFi)", "iPad8,6": "iPad Pro 12.9 (3rd generation) (WiFi, 1TB)", "iPad8,7": "iPad Pro 12.9 (3rd generation) (WiFi, Cellular)", "iPad8,8": "iPad Pro 12.9 (3rd generation) (WiFi, Cellular, 1TB)", "iPad11,1": "iPad Mini 5 (WiFi)", "iPad11,2": "iPad Mini 5 (WiFi, Cellular)", "iPad11,3": "iPad Air 3 (WiFi)", "iPad11,4": "iPad Air 3 (WiFi, Cellular)", "iPad11,6": "iPad 8 (WiFi)", "iPad11,7": "iPad 8 (WiFi, Cellular)", "iPad12,1": "iPad 9 (WiFi)", "iPad12,2": "iPad 9 (WiFi, Cellular)", "iPad14,1": "iPad Mini 6 (WiFi)", "iPad14,2": "iPad Mini 6 (WiFi, Cellular)", "iPad13,1": "iPad Air 4 (WiFi)", "iPad13,2": "iPad Air 4 (WiFi, Cellular)", "iPad13,4": "iPad Pro 11 (4th generation) (WiFi)", "iPad13,5": "iPad Pro 11 (4th generation) (WiFi, Cellular)", "iPad13,6": "iPad Pro 11 (4th generation) (WiFi)", "iPad13,7": "iPad Pro 11 (4th generation) (WiFi, Cellular)", "iPad13,8": "iPad Pro 12.9 (5th generation) (WiFi)", "iPad13,9": "iPad Pro 12.9" ] return modelMap[modelCode] ?? modelCode } }
  1. OS 버전

static func getOsVersion() -> String { return UIDevice.current.systemVersion }
  1. Devie Type

static func getDeviceType() -> String { if UIDevice.current.userInterfaceIdiom == .phone { return "iPhone" } else if UIDevice.current.userInterfaceIdiom == .pad { return "iPad" } else { return "Mac" } }
Last modified: 21 4월 2025