شروع به کار با «پایش عملکرد» برای پلاتفرم‌های Apple

قبل از شروع

اگر قبلاً این کار را نکرده‌اید، Firebase را به پروژه Apple خود اضافه کنید.

مرحله ۱: Performance Monitoring را به برنامه‌تان اضافه کنید

پس‌از افزودن کیت توسعه نرم‌افزار Performance Monitoring، Firebase به‌طور خودکار شروع به جمع‌آوری داده برای پرداز صفحه برنامه شما، داده‌های مربوط به چرخه حیات برنامه شما (مانند زمان شروع برنامه)، و داده‌های مربوط به درخواست‌های شبکه HTTP/S می‌کند.

از Swift Package Manager برای نصب و مدیریت وابستگی‌های Firebase استفاده کنید.

  1. در Xcode، درحالی‌که پروژه برنامه‌تان باز است، به File (فایل) > Add Packages (افزودن بسته‌ها) بروید.
  2. وقتی خواسته شد، مخزن کیت توسعه نرم‌افزار Firebase برای پلاتفرم‌های Apple را اضافه کنید:
  3.   https://github.com/firebase/firebase-ios-sdk.git
  4. کتابخانه Performance Monitoring را انتخاب کنید.
  5. پرچم -ObjC را به بخش Other Linker Flags (سایر پرچم‌های پیونددهنده) در تنظیمات ساخت هدف اضافه کنید.
  6. پس‌از اتمام، Xcode به‌طور خودکار شروع به حل و بارگیری وابستگی‌های شما در پس‌زمینه می‌کند.

سپس، واحد Firebase را پیکربندی کنید:

  1. واحد FirebaseCore را در UIApplicationDelegate و همچنین هر واحد Firebase دیگری که نماینده برنامه‌تان استفاده می‌کند وارد کنید. برای مثال، برای استفاده از Cloud Firestore و Authentication:

    SwiftUI

    import SwiftUI
    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    Swift

    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    Objective-C

    @import FirebaseCore;
    @import FirebaseFirestore;
    @import FirebaseAuth;
    // ...
          
  2. یک FirebaseApp نمونه مشترک را در application(_:didFinishLaunchingWithOptions:) روش نماینده برنامه‌تان پیکربندی کنید:

    SwiftUI

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    Swift

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    Objective-C

    // Use Firebase library to configure APIs
    [FIRApp configure];
  3. اگر از SwiftUI استفاده می‌کنید، باید یک نماینده برنامه ایجاد کنید و آن را ازطریق UIApplicationDelegateAdaptor یا NSApplicationDelegateAdaptor به ساختار App خود متصل کنید. همچنین باید «سویزلینگ نماینده برنامه» را غیرفعال کنید. برای اطلاعات بیشتر، دستورالعمل‌های SwiftUI را ببینید.

    SwiftUI

    @main
    struct YourApp: App {
      // register app delegate for Firebase setup
      @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate
    
      var body: some Scene {
        WindowGroup {
          NavigationView {
            ContentView()
          }
        }
      }
    }
          
  4. برنامه‌تان را بازهمگردانی کنید.

مرحله ۲: تولید رویدادهای عملکرد برای نمایش اولیه داده‌ها

وقتی «کیت توسعه نرم‌افزار» را باموفقیت به برنامه‌تان اضافه کنید، Firebase پردازش رویدادها را شروع می‌کند. اگر هنوز درحال توسعه محلی هستید، با برنامه‌تان تعامل برقرار کنید تا رویدادهایی برای جمع‌آوری و پردازش اولیه داده‌ها ایجاد شود.

  1. بااستفاده از شبیه‌ساز یا دستگاه آزمایشی، به توسعه برنامه‌تان ادامه دهید.

  2. با جابه‌جا کردن برنامه‌تان بین پس‌زمینه و پیش‌زمینه برای چند بار، تعامل با برنامه‌تان ازطریق پیمایش در صفحه‌ها، و/یا راه‌اندازی درخواست‌های شبکه، رویداد ایجاد کنید.

  3. به داشبورد عملکرد کنسول Firebase بروید. باید داده‌های اولیه‌تان را ظرف چند دقیقه ببینید.

    اگر نمایش داده‌های اولیه خود را نمی‌بینید، نکات عیب‌یابی را مرور کنید.

مرحله ۳: (اختیاری) مشاهده پیام‌های گزارش برای رویدادهای عملکرد

  1. گزارش‌گیری اشکال‌زدایی را به‌صورت زیر فعال کنید:

    1. در Xcode (حداقل نسخه ۲۶.۲)، محصول > طرح > ویرایش طرح را انتخاب کنید.
    2. اجرا را از منوِ سمت راست انتخاب کنید، سپس زبانه آرگومان‌ها را انتخاب کنید.
    3. در بخش Arguments Passed on Launch،‏ -FIRDebugEnabled را اضافه کنید.
  2. پیام‌های گزارش را برای پیدا کردن پیام‌های خطا بررسی کنید.

  3. Performance Monitoring پیام‌های گزارش خود را با Firebase/Performance برچسب‌گذاری می‌کند تا بتوانید پیام‌های گزارش خود را فیلتر کنید.

  4. انواع گزارش‌های زیر را که نشان می‌دهد Performance Monitoring رویدادهای عملکرد را ثبت می‌کند بررسی کنید:

    • Logging trace metric: TRACE_NAME, FIREBASE_PERFORMANCE_CONSOLE_URL
    • Logging network request trace: URL
  5. روی نشانی وب کلیک کنید تا داده‌هایتان را در کنسول Firebase ببینید. ممکن است چند لحظه طول بکشد تا داده‌ها در داشبورد به‌روز شود.

اگر برنامه‌تان رویدادهای عملکرد را ثبت نمی‌کند، نکات عیب‌یابی را مرور کنید.

مرحله ۴: (اختیاری) افزودن پایش سفارشی برای کد خاص

برای نظارت بر داده‌های عملکرد مرتبط با کد خاصی در برنامه‌تان، می‌توانید ردگیری‌های کد سفارشی را ابزاربندی کنید.

با ردگیری کد سفارشی، می‌توانید مدت زمان لازم برای تکمیل یک تکلیف خاص یا مجموعه‌ای از تکالیف توسط برنامه‌تان را اندازه‌گیری کنید، مانند بار کردن مجموعه‌ای از تصاویر یا پرس‌وجو از پایگاه داده‌تان. سنجه پیش‌فرض برای ردگیری کد سفارشی مدت‌زمان آن است، اما می‌توانید سنجه‌های سفارشی نیز اضافه کنید، مثل بازدیدهای حافظه پنهان و هشدارهای حافظه.

در کدتان، ابتدا و انتهای ردگیری کد سفارشی را تعریف می‌کنید (و هر سنجه سفارشی دلخواهی را اضافه می‌کنید) و از میانای برنامه‌سازی کاربردی ارائه‌شده توسط Performance Monitoring SDK استفاده می‌کنید.

برای کسب اطلاعات بیشتر درباره این ویژگی‌ها و نحوه افزودن آن‌ها به برنامه‌تان، به افزودن نظارت برای کد خاص مراجعه کنید.

مرحله ۵: برنامه‌تان را مستقر کنید، سپس نتایج را بررسی کنید

پس‌از اعتبارسنجی Performance Monitoring بااستفاده از شبیه‌ساز Xcode و یک یا چند دستگاه آزمایشی، می‌توانید نسخه به‌روزشده برنامه‌تان را برای کاربران خود مستقر کنید.

می‌توانید داده‌های عملکرد را در داشبورد عملکرد در کنسول Firebase پایش کنید.

مشکلات شناخته شده

  • ‫Performance Monitoring مشکلات سازگاری شناخته‌شده‌ای با GTMSQLite دارد. توصیه می‌کنیم از Performance Monitoring با برنامه‌هایی که از GTMSQLite استفاده می‌کنند استفاده نکنید.
  • روش تغییر پیاده‌سازی پس‌از فراخوانی FirebaseApp.configure() ممکن است با کیت توسعه نرم‌افزار Performance Monitoring تداخل داشته باشد.
  • مشکلات شناخته‌شده با شبیه‌ساز iOS 8.0-8.2 مانع از ضبط رویدادهای عملکردی توسط Performance Monitoring می‌شود. این مشکلات در شبیه‌ساز iOS 8.3 و نسخه‌های جدیدتر برطرف شده است.
  • اتصال‌های برقرارشده بااستفاده از backgroundSessionConfiguration NSURLSession زمان اتصال طولانی‌تری نسبت‌به حد انتظار خواهند داشت. این اتصالات خارج از فرایند اجرا می‌شوند و زمان‌بندی‌ها رویدادهای فراخوانی برگشتی درون فرایند را منعکس می‌کنند.

مراحل بعدی