การแก้ปัญหาเกี่ยวกับการให้สิทธิ์ ARCore API

เลือกแพลตฟอร์ม:

เมื่อการสื่อสารกับเซิร์ฟเวอร์ ARCore API แสดงข้อผิดพลาด ERROR_NOT_AUTHORIZED ให้ตรวจสอบว่าแอปพลิเคชันของคุณมีไลบรารี com.google.android.gms:play-services-auth ดังนี้

  1. บิลด์แอปและตรวจสอบอาร์ติแฟกต์ที่ได้โดยใช้เครื่องมือวิเคราะห์ APK ตรวจสอบว่าไบนารีของแอปพลิเคชันที่คอมไพล์แล้วมีแพ็กเกจ com.google.android.gms.auth และเนื้อหาของแพ็กเกจนั้นไม่ได้เปลี่ยนชื่อหรือได้รับการย่อ
    • หากไม่มี ให้ทําตามหัวข้อรวมไลบรารีที่จําเป็น และตรวจสอบว่าได้รวมไลบรารีแล้วและการตั้งค่าการย่อขนาดถูกต้อง
  2. แสดงข้อมูลความปลอดภัยที่มีอยู่ในอาร์ติแฟกต์เป้าหมายที่ดำเนินการไม่สำเร็จโดยใช้ยูทิลิตี keytool

    keytool -printcert -jarfile artifact.aab
    keytool -printcert -jarfile artifact.apk
  3. ตรวจสอบว่าลายนิ้วมือใบรับรอง SHA-1 ตรงกับข้อมูลเข้าสู่ระบบที่ใช้ในรหัสไคลเอ็นต์ OAuth 2.0 ของโปรเจ็กต์

  4. ตรวจสอบว่าคุณได้เปิดใช้ ARCore API สำหรับโปรเจ็กต์ที่ถูกต้องใน Google Cloud แล้ว

หากการให้สิทธิ์แบบไม่ต้องใช้คีย์สําเร็จในบางบิลด์แต่ไม่สําเร็จในบิลด์อื่นๆ ให้ตรวจสอบว่าลายนิ้วมือที่มีอยู่ในอาร์ติแฟกต์ที่ไม่สําเร็จตรงกับลายนิ้วมือที่แสดงในคอนโซล Google Cloud ดูการให้สิทธิ์แบบไม่ต้องใช้คีย์ไม่ทำงานและทำตามขั้นตอนเพื่อยืนยันว่าลายนิ้วมือของคีย์การรับรองสําหรับอาร์ติแฟกต์นั้นตรงกับลายนิ้วมือที่แสดงใน Google Cloud

หากการให้สิทธิ์แบบไม่ต้องใช้คีย์ใช้งานได้ในบิลด์ในเครื่อง แต่ใช้งานไม่ได้หลังจากอัปโหลดไปยัง Google Play Store เมื่อเปิดใช้ App Signing ของ Play ให้ตรวจสอบว่าลายนิ้วมือใบรับรอง SHA-1 ที่ลงทะเบียนในข้อมูลเข้าสู่ระบบของโปรเจ็กต์ตรงกับลายนิ้วมือที่ Google ใช้เพื่อรับรองแอปของคุณ

  • ในหน้า App Signing ใน Google Play ให้เลื่อนไปที่ใบรับรองคีย์ App Signing จดบันทึกลายนิ้วมือของใบรับรอง SHA-1
  • สร้างรหัสไคลเอ็นต์ OAuth 2.0 ใหม่โดยใช้ลายนิ้วมือใบรับรอง SHA-1 จากขั้นตอนก่อนหน้า

ดูข้อมูลเพิ่มเติมได้ที่การรับรองแอป Play

หากการให้สิทธิ์คีย์ API ไม่ทำงาน ให้ทำตามขั้นตอนต่อไปนี้

  • ตรวจสอบว่าคุณได้เปิดใช้ ARCore API สำหรับโปรเจ็กต์ที่ถูกต้องใน Google Cloud แล้ว
  • หากเปิดใช้ข้อจํากัดของคีย์ API ไว้ ให้ปิดใช้ชั่วคราว
  • ตรวจสอบว่าคีย์ API ที่แสดงในข้อมูลเข้าสู่ระบบของโปรเจ็กต์ตรงกับคีย์ API ที่แอปของคุณใช้โดยไม่มีเว้นวรรคหรืออักขระอื่นๆ