Sử dụng tính năng Kiểm tra ứng dụng thông qua trình cung cấp gỡ lỗi

Nếu sau khi đăng ký ứng dụng cho tính năng Kiểm tra ứng dụng, bạn muốn chạy ứng dụng trong một môi trường mà tính năng Kiểm tra ứng dụng thường không phân loại là hợp lệ, chẳng hạn như trình mô phỏng trong quá trình phát triển hoặc từ quá trình tích hợp liên tục (CI) bạn có thể tạo một bản gỡ lỗi của ứng dụng sử dụng Trình cung cấp dịch vụ gỡ lỗi Kiểm tra ứng dụng thay vì Kiểm thử ứng dụng.

Sử dụng trình cung cấp gỡ lỗi trong trình mô phỏng

Sử dụng trình cung cấp gỡ lỗi khi chạy ứng dụng trong trình mô phỏng theo cách tương tác (ví dụ: trong quá trình phát triển), hãy làm như sau:

  1. Tra cứu khoá API iOS cho dự án của bạn trên phần Thông tin xác thực trang về API & Dịch vụ trong bảng điều khiển Google Cloud.

  2. Trong bản gỡ lỗi, hãy định cấu hình tính năng Kiểm tra ứng dụng để sử dụng trình cung cấp gỡ lỗi. Bạn sẽ cần chỉ định khoá API bạn có ở bước trước.

    #if targetEnvironment(simulator)
    GIDSignIn.sharedInstance.configureDebugProvider(withAPIKey: apiKey) { error in
      if let error {
        print("Error configuring `GIDSignIn` for App Check: \(error)")
      }
    }
    #else
    // Configure App Check for production.
    #endif
    
  3. Khởi chạy ứng dụng. Mã gỡ lỗi cục bộ sẽ được ghi vào bảng điều khiển Xcode khi SDK sẽ cố gắng gửi một yêu cầu đến phần phụ trợ. Ví dụ:

    <Warning> [AppCheckCore][I-GAC004001] App Check debug token:
    '123a4567-b89c-12d3-e456-789012345678'.
    
  4. Trong phần Kiểm tra ứng dụng trong bảng điều khiển của Firebase, hãy chọn Quản lý mã gỡ lỗi từ trình đơn mục bổ sung. Sau đó, hãy đăng ký mã gỡ lỗi mà bạn đã ghi vào trước đó .

    Ảnh chụp màn hình mục trong trình đơn Quản lý mã gỡ lỗi

Sau khi bạn đăng ký mã thông báo, các điểm cuối OAuth 2.0 của Google sẽ chấp nhận mã đó là cho dự án của bạn.

Vì mã thông báo này cho phép truy cập vào điểm cuối xác thực của bạn mà không cần thiết bị hợp lệ, điều quan trọng là bạn phải bảo mật thông tin đó. Không cam kết kho lưu trữ công khai và nếu một mã thông báo đã đăng ký bị xâm phạm, hãy thu hồi mã đó ngay trong bảng điều khiển của Firebase.

Sử dụng trình cung cấp gỡ lỗi trong môi trường CI

Để sử dụng trình cung cấp gỡ lỗi trong môi trường tích hợp liên tục (CI), hãy thực hiện sau:

  1. Trong phần Kiểm tra ứng dụng trong bảng điều khiển của Firebase, hãy chọn Quản lý mã gỡ lỗi từ trình đơn mục bổ sung. Sau đó, hãy tạo một mã gỡ lỗi mới. Bạn sẽ cần mã thông báo trong bước tiếp theo.

    Vì mã thông báo này cho phép truy cập vào điểm cuối xác thực của bạn mà không cần một thiết bị hợp lệ, điều quan trọng là bạn phải bảo mật thông tin đó. Không cam kết kho lưu trữ công khai và nếu một mã thông báo đã đăng ký bị xâm phạm, hãy thu hồi mã đó ngay trong bảng điều khiển của Firebase.

    Ảnh chụp màn hình mục trong trình đơn Quản lý mã gỡ lỗi

  2. Thêm mã gỡ lỗi mà bạn vừa tạo vào kho khoá bảo mật của hệ thống CI (ví dụ: bí mật đã mã hoá của GitHub Actions hoặc biến đã mã hoá của Travis CI).

  3. Nếu cần, hãy định cấu hình hệ thống CI để cung cấp mã gỡ lỗi trong môi trường CI dưới dạng biến môi trường. Đặt tên cho biến chẳng hạn như APP_CHECK_DEBUG_TOKEN_FROM_CI.

  4. Trong Xcode, hãy thêm một biến môi trường vào lược đồ thử nghiệm của bạn bằng tên FIRAAppCheckDebugToken và một số tham số tương tự như $(APP_CHECK_DEBUG_TOKEN) giá trị đó.

  5. Định cấu hình tập lệnh thử nghiệm CI để truyền mã gỡ lỗi dưới dạng một môi trường biến. Ví dụ:

    xcodebuild test -scheme YourTestScheme -workspace YourProject.xcworkspace \
    APP_CHECK_DEBUG_TOKEN=$(APP_CHECK_DEBUG_TOKEN_FROM_CI)
  6. Tra cứu khoá API iOS cho dự án của bạn trên phần Thông tin xác thực trang về API & Dịch vụ trong bảng điều khiển Google Cloud.

  7. Trong bản gỡ lỗi, hãy định cấu hình tính năng Kiểm tra ứng dụng để sử dụng trình cung cấp gỡ lỗi. Bạn sẽ cần chỉ định khoá API bạn có ở bước trước.

    #if targetEnvironment(simulator)
    GIDSignIn.sharedInstance.configureDebugProvider(withAPIKey: apiKey) { error in
      if let error {
        print("Error configuring `GIDSignIn` for App Check: \(error)")
      }
    }
    #else
    // Configure App Check for production.
    #endif
    

Khi ứng dụng của bạn chạy trong môi trường CI, các điểm cuối OAuth 2.0 của Google sẽ chấp nhận mã thông báo mà mã đó gửi là hợp lệ cho dự án của bạn.