ObjecTips

Swift & Objective-C で iOS とか macOS とか

Apple Watch と WatchOS のデバイス情報を取得する

iOS 9 β4で WKInterfaceDevice にデバイス情報を取得するメソッドが追加された。
追加されたメソッドは以下で取得できる情報は iOSUIDevice に存在する同名のメソッドと同じ。

@property(nonatomic, readonly, copy) NSString *systemVersion  WK_AVAILABLE_WATCHOS_IOS(2.0,9.0); // e.g. @"2.0"
@property(nonatomic, readonly, copy) NSString *name           WK_AVAILABLE_WATCHOS_IOS(2.0,9.0); // e.g. "My Watch"
@property(nonatomic, readonly, copy) NSString *model          WK_AVAILABLE_WATCHOS_IOS(2.0,9.0); // e.g. @"Apple Watch"
@property(nonatomic, readonly, copy) NSString *localizedModel WK_AVAILABLE_WATCHOS_IOS(2.0,9.0); // localized version of model
@property(nonatomic, readonly, copy) NSString *systemName     WK_AVAILABLE_WATCHOS_IOS(2.0,9.0); // e.g. @"watchOS"


実際に実機で試してみたところ以下が取得できた。

メソッド
systemVersion 2.0
name iOS のWatch アプリで設定した名称
model Apple Watch
localizedModel Apple Watch
systemName watchOS


その他 sysctlbyname ファンクションで取得できるデバイス情報の hw.machinehw.model は以下になる。

キー Apple Watch 38mm Apple Watch 42mm
hw.machine Watch1,1 Watch1,2
hw.model N27aAP N28aAP

将来的に新バージョンの Apple Watch が出た際には sysctlbyname を使ってデバイス判定を行う事ができる。