Section 13/171 menit

13. Troubleshooting & Kesalahan Umum

13. Troubleshooting & Kesalahan Umum

Error: ASAuthorizationError.Code.failed

swift
// Penyebab paling umum: Associated Domains tidak terkonfigurasi benar
// Cek:
// 1. apple-app-site-association bisa diakses via HTTPS
// 2. Team ID + Bundle ID benar di AASA file
// 3. Entitlement "webcredentials:yourdomain.com" sudah ditambah

// Cara verifikasi AASA:
// https://developer.apple.com/documentation/xcode/supporting-associated-domains
// Gunakan tool: https://branch.io/resources/aasa-validator/

Error saat Testing di Simulator

swift
// Passkeys tidak bekerja di iOS Simulator sebelum iOS 16.2
// Solusi: gunakan physical device, atau iOS 16.2+ simulator
// Untuk simulator iOS 16.2+:
// Settings → Developer → Enable Passkeys for Simulator

Challenge Expired

swift
// Challenge harus digunakan dalam 5-10 menit
// Jika user diam terlalu lama sebelum Face ID:
// → Server harus reject challenge yang expired
// → App harus request challenge baru

func loginWithPasskey() async {
    // Selalu request challenge baru setiap kali user tap login
    // Jangan cache challenge dari request sebelumnya
    let freshChallenge = try await authAPI.beginPasskeyAuthentication()
    // ...
}

Passkey Tidak Muncul di AutoFill

swift
// Penyebab: performAutoFillAssistedRequests dipanggil terlalu lambat
// Solusi: panggil di viewDidAppear, bukan viewDidLoad atau setelah user tap

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)
    beginConditionalPasskeyRequest()  // lebih awal = lebih baik
}

// Juga: textContentType harus .username atau .emailAddress
// Tanpa ini, QuickType bar tidak menampilkan passkey