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 Kiểm tra ứng dụng, bạn muốn chạy ứng dụng trong 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ừ môi trường tích hợp liên tục (CI), thì bạn có thể tạo bản dựng gỡ lỗi của ứng dụng sử dụng nhà cung cấp dịch vụ gỡ lỗi Kiểm tra ứng dụng thay vì Kiểm tra ứng dụng.

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

Để sử dụng trình cung cấp gỡ lỗi trong khi chạy ứng dụng của bạn 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. Hãy tìm khoá API iOS cho dự án của bạn trên trang Thông tin xác thực trong phần API và dịch vụ trên 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 cần chỉ định khoá API bạn đã nhậ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ã thông báo gỡ lỗi cục bộ sẽ được ghi vào bảng điều khiển của Xcode khi SDK cố gắng gửi 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 mục Kiểm tra ứng dụng trên bảng điều khiển của Firebase, hãy chọn Quản lý mã gỡ lỗi trên trình đơn mục bổ sung của ứng dụng. Sau đó, hãy đăng ký mã gỡ lỗi mà bạn đã ghi ở bước trước.

    Ảnh chụp màn hình mục trong trình đơn Quản lý mã thông báo 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ã này là hợp lệ cho dự án của bạn.

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

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

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

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

    Vì mã thông báo này cho phép truy cập vào các điểm cuối xác thực của bạn mà không cần thiết bị hợp lệ, nên bạn phải giữ bí mật mã này. Đừng gửi mã này vào kho lưu trữ công khai. Nếu một mã thông báo đã đăng ký bị xâm phạm, hãy thu hồi mã đó ngay lập tức 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ã thông báo gỡ lỗi

  2. Thêm mã gỡ lỗi bạn vừa tạo vào kho khoá bảo mật của hệ thống CI (ví dụ: khoá 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 đồ kiểm thử có tên là FIRAAppCheckDebugToken và giá trị tương tự như $(APP_CHECK_DEBUG_TOKEN).

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

    xcodebuild test -scheme YourTestScheme -workspace YourProject.xcworkspace \
    APP_CHECK_DEBUG_TOKEN=$(APP_CHECK_DEBUG_TOKEN_FROM_CI)
  6. Hãy tìm khoá API iOS cho dự án của bạn trên trang Thông tin xác thực trong phần API và dịch vụ trên 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 cần chỉ định khoá API bạn đã nhậ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à ứng dụng gửi là hợp lệ cho dự án của bạn.