Closed1
macOSでiOSアプリを実行している場合、ATTrackingManager.requestTrackingAuthorizationを実行しても許諾ダイアログが表示されない
iOSで下記のコードを実行するとATT(App Tracking Transparency)の許諾ダイアログが表示される。[許可する]ボタンを押せば authorized
が出力される。これは多くの人が似たようなコードを書いているので知っている人も多いだろう。
if #available(iOS 14.0, *) {
// IDFAの未確認のみ許可ダイアログを表示する
ATTrackingManager.requestTrackingAuthorization { (status) in
switch status {
case .notDetermined:
print("notDetermined")
case .restricted:
print("restricted")
case .denied:
print("denied")
case .authorized:
print("authorized")
@unknown default:
print("unknown")
}
DispatchQueue.main.async {
completeHandler?()
}
}
} else {
completeHandler?()
}
Appleシリコン搭載のMac(ここではM1 Macと記す)では、macOS上でiOSアプリを実行することができる。
M1 Macで ATTrackingManager.requestTrackingAuthorization
を実行すると、ATT許諾ダイアログが表示されずに notDetermined
が返ってくる。notDetermined
はまだ許諾のリクエストを行なっていない状態と理解していたため、許諾リクエストをおこなっているのに notDetermined
が返ってくるパターンを想定しておらず、M1 Macで自作アプリを実行すると意図しない状態になっていた。つまりバグっていた。
M1 Macで僕のアプリを動かすような物好きが存在しているかはわからないが、これからはM1 Macでもアプリのテストをしたいと思う。
このスクラップは2022/05/09にクローズされました