Sử dụng tính năng Kiểm tra ứng dụng với trình cung cấp gỡ lỗi trên các nền tảng của Apple

Sau khi App Check được thực thi cho một dịch vụ phụ trợ, các tính năng của ứng dụng phụ thuộc vào dịch vụ phụ trợ đó sẽ không chạy trong trình mô phỏng hoặc từ môi trường tích hợp liên tục (CI) vì những môi trường này không đủ điều kiện là thiết bị hợp lệ. Để chạy ứng dụng trong các môi trường này trong quá trình phát triển và kiểm thử, bạn cần tạo một bản gỡ lỗi của ứng dụng sử dụng App Check trình cung cấp gỡ lỗi thay vì trình cung cấp chứng thực sản xuất.

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

Sau đây là cách sử dụng nhà cung cấp dịch vụ gỡ lỗi trong khi chạy ứng dụng của bạn trong trình mô phỏng một cách tương tác (ví dụ: trong quá trình phát triển cục bộ):

  1. Trong bản gỡ lỗi, trước khi sử dụng bất kỳ dịch vụ phụ trợ nào của Firebase, hãy tạo và đặt nhà máy trình cung cấp gỡ lỗi App Check:

    Swift

    let providerFactory = AppCheckDebugProviderFactory()
    AppCheck.setAppCheckProviderFactory(providerFactory)
    
    FirebaseApp.configure()

    Objective-C

    FIRAppCheckDebugProviderFactory *providerFactory =
          [[FIRAppCheckDebugProviderFactory alloc] init];
    [FIRAppCheck setAppCheckProviderFactory:providerFactory];
    
    // Use Firebase library to configure APIs
    [FIRApp configure];
  2. Lấy mã thông báo gỡ lỗi:

    1. Chạy ứng dụng trong trình mô phỏng hoặc trên thiết bị thử nghiệm.

    2. Mở bảng điều khiển Xcode rồi tìm mã gỡ lỗi App Check. Ví dụ:

      <Warning> [AppCheckCore][I-GAC004001] App Check debug token: '123a4567-b89c-12d3-e456-789012345678'.
      
    3. Sao chép mã thông báo (ví dụ: 123a4567-b89c-12d3-e456-789012345678).

  3. Đăng ký mã thông báo gỡ lỗi bằng App Check:

    1. Trong bảng điều khiển Firebase, hãy chuyển đến thẻ Bảo mật > Kiểm tra ứng dụng > Ứng dụng.

    2. Tìm ứng dụng của bạn, nhấp vào trình đơn mục bổ sung (), rồi chọn Quản lý mã gỡ lỗi.

    3. Làm theo hướng dẫn trên màn hình để đăng ký mã gỡ lỗi.

    Ảnh chụp màn hình mục Manage Debug Tokens (Quản lý mã gỡ lỗi) trong bảng điều khiển của Firebase

Sau khi bạn đăng ký mã thông báo bằng App Check, các dịch vụ phụ trợ của bạn sẽ chấp nhận mã thông báo đó là hợp lệ.

Mã thông báo này cho phép truy cập vào các dịch vụ phụ trợ của bạn mà không cần thiết bị hợp lệ, vì vậy, bạn cần giữ bí mật mã thông báo này. Không cam kết mã thông báo này với một kho lưu trữ công khai hoặc gửi mã thông báo này trong các bản dựng phát hành chính thức của ứng dụng. Nếu mã thông báo đã đăng ký bị xâm nhập, hãy xoá mã thông báo đó ngay lập tức bằng cách sử dụng Quản lý mã thông báo gỡ lỗi trong bảng điều khiển Firebase.

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

Sau đây là cách sử dụng trình cung cấp gỡ lỗi để kiểm thử đơn vị trong môi trường tích hợp liên tục (CI):

  1. Trong bảng điều khiển Firebase, hãy tạo mã thông báo gỡ lỗi:

    1. Trong bảng điều khiển Firebase, hãy chuyển đến thẻ Bảo mật > Kiểm tra ứng dụng > Ứng dụng.

    2. Tìm ứng dụng của bạn, nhấp vào trình đơn mục bổ sung (), rồi chọn Quản lý mã gỡ lỗi.

    3. Làm theo hướng dẫn trên màn hình để tạo mã gỡ lỗi mới.

    Mã thông báo này cho phép truy cập vào các dịch vụ phụ trợ của bạn mà không cần thiết bị hợp lệ, vì vậy, bạn cần giữ bí mật mã thông báo này. Không cam kết mã thông báo này với một kho lưu trữ công khai hoặc gửi mã thông báo này trong các bản dựng phát hành chính thức của ứng dụng. Nếu mã thông báo đã đăng ký bị xâm nhập, hãy xoá mã thông báo đó ngay lập tức bằng cách sử dụng Quản lý mã thông báo gỡ lỗi trong bảng điều khiển Firebase.

    Ảnh chụp màn hình mục trong trình đơn Manage Debug Tokens (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ụ: các bí mật đã mã hoá của GitHub Actions hoặc cá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 một 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 chương trình kiểm thử của bạn bằng tên AppCheckDebugToken và một giá trị nào đó như $(APP_CHECK_DEBUG_TOKEN).

  5. Định cấu hình kịch bản kiểm tra CI để truyề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 YOUR_TEST_SCHEME -workspace YOUR_PROJECT.xcworkspace \
    APP_CHECK_DEBUG_TOKEN=$(APP_CHECK_DEBUG_TOKEN_FROM_CI)
  6. Trong bản gỡ lỗi, trước khi sử dụng bất kỳ dịch vụ phụ trợ nào của Firebase, hãy tạo và đặt nhà máy trình cung cấp gỡ lỗi App Check:

    Swift

    let providerFactory = AppCheckDebugProviderFactory()
    AppCheck.setAppCheckProviderFactory(providerFactory)
    
    FirebaseApp.configure()

    Objective-C

    FIRAppCheckDebugProviderFactory *providerFactory =
          [[FIRAppCheckDebugProviderFactory alloc] init];
    [FIRAppCheck setAppCheckProviderFactory:providerFactory];
    
    // Use Firebase library to configure APIs
    [FIRApp configure];

Khi ứng dụng của bạn chạy trong môi trường CI, các dịch vụ phụ trợ sẽ chấp nhận mã thông báo mà ứng dụng gửi dưới dạng mã thông báo hợp lệ.