Analitika va hisobotlar


ULASHISH

Analitika va crash hisobotlari

Ilovadan foydalanish va barqarorlik ma’lumotlarini mas’uliyat bilan yig‘ing, SDK’larni integratsiya qiling va relizdan keyingi crash loglarini Xcode Organizer’da ko‘rib chiqing.


Xcode Organizer

Relizdan keyin foydalanuvchilardan kelgan crash loglari, energiya hisobotlari va unumdorlik ko‘rsatkichlarini ko‘rish uchun Xcode Organizer’dan foydalaning.


Analitika SDK’larini integratsiya qilish

Uchinchi tomon analitika va crash hisobotlari SDK’larini SPM yoki CocoaPods orqali qo‘shing.

Maxfiylik bo‘yicha eng yaxshi amaliyotlarga amal qiling va ma’lumotlar yig‘ilishini oshkor qiling.

Misol

// Example: Add an analytics package
// .package(url: "https://github.com/acme/analytics-sdk", from: "1.0.0")
import SwiftUI
// import AnalyticsSDK

@main
struct MyApp: App {
  init() {
    // AnalyticsSDK.start(apiKey: "YOUR_KEY")
  }
  var body: some Scene { WindowGroup { ContentView() } }
}

URL va versiyani ko‘rsatib, analitika paketini loyihangizga qo‘shing.


Loglash (os.Logger)

Diagnostika va foydalanuvchi muammolarini o‘zaro bog‘lash uchun tuzilmaviy loglashdan foydalaning.

Misol

import os

let logger = Logger(subsystem: "com.example.app", category: "network")

func fetch() async {
  logger.info("Starting fetch...")
  do {
    // ... network call ...
    logger.debug("Response status: \(200)")
  } catch {
    logger.error("Fetch failed: \(error.localizedDescription)")
  }
}


Hodisalarni kuzatish (rozilik bilan)

Minimal hodisalar kuzatuvchisini loyihalang va faqat zarur, shaxsni aniqlamaydigan (non-PII) ma’lumotlarni yuboring. Ma’lumot yig‘ishni foydalanuvchi roziligiga bog‘lang.

Misol

import Foundation

struct Event: Codable {
  let name: String
  let props: [String: String]
}

class EventTracker {
  var consentGiven = false
  func identify(userId: String?) { /* store hashed or anonymous ID */ }
  func track(_ event: Event) {
    guard consentGiven else { return }
    // enqueue and batch to your endpoint
  }
}

Maxfiylik

  • Foydalanuvchi roziligini hurmat qiling; kerak bo‘lganda rad etish (opt-out) imkoniyatini taqdim eting.
  • Shaxsiy ma’lumotlarni (PII) minimallashtiring; anonimlashtirilgan, jamlangan hodisalarni afzal ko‘ring.
  • Ma’lumot yig‘ish o‘zgarsa, App Privacy ma’lumotlaringizni yangilang.

Maslahat: Nosozliklarga tezroq javob berish uchun crash hisobotlarini ilova versiyalari va funksiya bayroqlari (feature flags) bilan bog‘lang.

Ishonchli stack trace’lar uchun simvolizatsiyani (symbolication) avtomatlashtiring.


Crash hisobotlari variantlari

  • Xcode Organizer: App Store build’lari uchun o‘rnatilgan crash loglarini yig‘ish va metrikalar.
  • Uchinchi tomon SDK’lari: real vaqtdagi ogohlantirishlar, foydalanuvchi/sessiya konteksti uchun Firebase Crashlytics, Sentry va h.k.
  • Simvolizatsiya va dSYM’lar: Stack trace’lar manba kodingiz qatorlariga bog‘lanishi uchun dSYM’lar yuklanganiga ishonch hosil qiling.

dSYM’lar: Crash SDK’dan foydalansangiz, simvolizatsiya qilinmagan crash’larning oldini olish uchun dSYM’larni avtomatik yuklashni sozlang (masalan, Run Script Phase yoki CI orqali).


Unumdorlik ko‘rsatkichlari

Signpost’lar orqali yengil vaqt o‘lchovlarini qo‘shing va ularni Instruments’da tahlil qiling.

Misol

import os

let signposter = OSSignposter()

func loadFeed() async {
  let id = signposter.makeSignpostID()
  let state = signposter.beginInterval("load_feed", id: id)
  // ... perform work ...
  signposter.endInterval("load_feed", state)
}

Shuningdek, ko‘rib chiqing: jamlangan unumdorlik va crash diagnostikasi uchun MetricKit (MXMetricManager).



W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!