با نظارت بر عملکرد برای پلتفرم های اپل شروع کنید

قبل از اینکه شروع کنی

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

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

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

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

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

سپس، ماژول Firebase را پیکربندی کنید:

  1. ماژول FirebaseCore را در UIApplicationDelegate خود وارد کنید، و همچنین هر ماژول Firebase دیگری که app delegate شما از آن استفاده می‌کند. به عنوان مثال، برای استفاده از Cloud Firestore و Authentication :

    سویفت‌یو‌آی

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

    سویفت

    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    هدف-سی

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

    سویفت‌یو‌آی

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

    سویفت

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

    هدف-سی

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

    سویفت‌یو‌آی

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

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

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

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

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

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

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

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

  1. فعال کردن ثبت گزارش اشکال‌زدایی، به شرح زیر است:

    1. در Xcode (حداقل نسخه ۱۶.۲)، مسیر Product > Scheme > Edit scheme را دنبال کنید.
    2. از منوی سمت چپ، گزینه Run را انتخاب کنید، سپس به تب Arguments بروید.
    3. در بخش آرگومان‌های ارسالی در هنگام راه‌اندازی ، -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، روی URL کلیک کنید. ممکن است چند لحظه طول بکشد تا داده‌ها در داشبورد به‌روزرسانی شوند.

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

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

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

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

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

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

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

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

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

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

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

مراحل بعدی