Android NDK

Önemli

Visual Studio App Center 31 Mart 2025'te kullanımdan kaldırılıyor. Tamamen kullanımdan kaldırılana kadar Visual Studio App Center'ı kullanmaya devam edebilirsiniz ancak geçiş yapmayı düşünebileceğiniz birkaç önerilen alternatif vardır.

Destek zaman çizelgeleri ve alternatifleri hakkında daha fazla bilgi edinin.

Android NDK, C ve C++ kullanarak Android uygulamalarınızın bölümlerini uygulamanıza olanak tanır. Yerel kodda geçerli yığın izlemeleri almak için Android uygulamalarınız için Google Breakpad istemci kitaplığını kullanabilirsiniz. Yığın izlemeleri yalnızca bellek adresleri içerebilir. Kilitlenmeleri okumak ve anlamak için gereken sınıf adlarını, yöntemleri, dosya adlarını ve satır numaralarını göstermezler. Android NDK uygulamanızın bellek adreslerinin çevrilmesi için her derleme için uygulama simgelerini karşıya yüklemeniz gerekir.

NDK kilitlenmelerini bildirmeyi öğrenmek için Android uygulamaları için Android SDK belgelerine veya Unity uygulamaları için Unity SDK belgelerine bakın .

Diğer platformlardan App Center'a Breakpad kilitlenmeleri göndermek istiyorsanız özel kilitlenmeleri karşıya yükleme belgelerine bakın.

Tam olmayan kilitlenmeler

Simge yüklemeden önce bile bazı ayrıntıları görüntüleyebilmeniz için App Center Tanılama bölümünde simgelenmemiş kilitlenmeler görüntülenir. Bu kilitlenmelerin eksik simgeleri "simgelenmemiş" sekmesinde gösterilir. Eksik simgeler karşıya yüklenirse, simgeleştirilmiş kilitlenme grubu simgeleştirilmiş kilitlenme grubuyla değiştirilir.

Not

App Center, sistem kitaplıklarından gelen çerçevelerin sembolikleştirmesini desteklemez. Android ve diğer platformlar için sistem ikili dosyalarının yüksek parçalanmaları göz önünde bulundurulduğunda (herhangi bir cihaz/işletim sistemi sürüm bileşiminde farklı olabilir) App Center, sistem ikili dosyaları için semboller sağlamaz ve simgesel olarak sistem ikili dosyalarından çerçeveleri otomatik olarak atlar.

Karşıya yüklenecek .zip dosyası oluşturma

App Center'ın sembolikleştirme için gerekli simgeleri almasının iki yolu vardır. App Center bunları projenizde kullanılan yerel ikili dosyalardan oluşturabilir veya Kesme Çubuğu simgelerini doğrudan karşıya yükleyebilirsiniz.

1. Seçenek: Yerel ikili dosyaları karşıya yükleme

Projenin obj/local/$ABI/ dizinindeki tüm .so dosyalarını bir .zip dosyasına yerleştirin.

2. Seçenek: Kesme Çubuğu simgelerini karşıya yükleme

  1. "Hata ayıklama simgelerini alma" bölümündeki Kesme Çubuğu belgelerinde açıklandığı gibi Kesme Çubuğu araç zincirini kullanarak simgelerin dökümünü alın.
  2. Aşağıdaki yapıya sahip birsymbols.zip dosyası oluşturun:

Not

Simgelerinizi macOS'tan karşıya yüklüyorsanız, simgelerinizi herhangi bir gereksiz klasörden temizlemeniz gerekir; örneğin, __MACOS oluşturulur ve bunu silmek için kullanabilirsiniz zip -d <symbols.zip> __MACOSX/\*.

$ unzip -l symbols.zip
Archive:  symbols.zip
  Length     Date   Time    Name
 --------    ----   ----    ----
        0  07-22-13 15:07   symbols/
        0  07-22-13 15:07   symbols/libnative.so/
        0  07-22-13 15:07   symbols/libnative.so/EAC901FB6DDCCE8AED89E1A8E4A58360/
    12468  07-22-13 15:07   symbols/libnative.so/EAC901FB6DDCCE8AED89E1A8E4A58360/libnative.so.sym
        0  07-22-13 15:07   symbols/libnative.so/FDC5C9E715C4F16408C0B78F95855BF0/
    12467  07-22-13 15:07   symbols/libnative.so/FDC5C9E715C4F16408C0B78F95855BF0/libnative.so.sym
 --------                   -------
    24935                   6 files

Sembolleri karşıya yükleme

Not

App Center Derleme ve Dağıtım hizmeti sembolleri otomatik olarak Tanılama hizmetine iletebilir. Uygulamanızı derlemek ve son kullanıcılarınıza otomatik olarak dağıtmak için App Center kullanıyorsanız, aşağıdaki adımlarda ayrıntılı olarak açıklandığı gibi sembol dosyalarını el ile edinmeniz ve karşıya yüklemeniz gerekmez.

App Center Portalı

  1. App Center'da oturum açın ve uygulamanızı seçin.
  2. Soldaki menüde Tanılama bölümüne ve ardından Sorunlar'a gidin.
  3. Uygulamanız henüz kilitlenme bildiriminde bulunmadıysa Kesme Çubuğu simgelerini karşıya yüklemek için API veya CLI kullanmanız gerekir.
  4. Uygulamanız zaten simge gerektiren kilitlenmeler bildirdiyse, Simgelenmemiş sekmesini denetleyin ve eksik sembolleri olan bir sürüm grubu olmalıdır, dosyayı karşıya yüklemek için menüyü görüntülemek için bu sekmeye tıklayın.
  5. Simgeler App Center tarafından dizine alındıktan sonra kilitlenmeler sizin için sembolik hale gelir.

App Center API'si

API aracılığıyla sembolleri karşıya yükleme işlemi üç API çağrısı serisini içerir: biri arka ucumuzda yer ayırmak için, biri dosyayı karşıya yüklemek için ve biri de karşıya yüklemenin durumunu güncelleştirmek için. İlk API çağrısının gövdesi olarak Breakpadayarlanmalıdırsymbol_type.

  1. symbol_uploads API'sine bir POST istek tetikleme. Bu çağrı, dosyanız için arka uçta yer ayırır ve bir symbol_upload_id ve upload_url özelliği döndürür.
curl -X POST 'https://api.appcenter.ms/v0.1/apps/{owner_name}/{app_name}/symbol_uploads' \
    -H 'accept: application/json' \
    -H 'X-API-Token: {API TOKEN}' \
    -H 'Content-Type: application/json' \
    -d '{JSON BODY}'
  1. upload_url İlk adımda döndürülen özelliğini kullanarak üst bilgiyle bir PUT istekte bulunun: "x-ms-blob-type: BlockBlob" ve disk üzerindeki dosyanızın konumunu sağlayın. Bu çağrı, dosyayı arka uç depolama hesaplarımıza yükler. PUT Blob isteği üst bilgileri hakkında daha fazla bilgi edinin.
curl -X PUT '{upload_url}' \
    -H 'x-ms-blob-type: BlockBlob' \
    --upload-file '{path to file}'
  1. İlk adımda döndürülen özelliğini kullanarak symbol_upload_idsymbol_uploads API'sine bir PATCH istek gönderin. İsteğin gövdesinde, karşıya yüklemenin durumunu karşıya yükleme committed işlemine (başarıyla tamamlandı) veya aborted (başarısız bir şekilde tamamlandı) olarak ayarlamak isteyip istemediğinizi belirtin.
curl -X PATCH 'https://api.appcenter.ms/v0.1/apps/{owner_name}/{app_name}/symbol_uploads/{symbol_upload_id}' \
    -H 'accept: application/json' \
    -H 'X-API-Token: {API TOKEN}' \
    -H 'Content-Type: application/json' \
    -d '{ "status": "committed" }'

Not

Sembol karşıya yükleme API'si 256 MB'tan büyük dosyalar için çalışmaz. Bu dosyaları karşıya yüklemek için App Center CLI'sini kullanın. App Center CLI depomuzdaki yönergeleri izleyerek App Center CLI'yi yükleyebilirsiniz.

App Center CLI

Sembol dosyalarını karşıya yüklemek için CLI'yi de kullanabilirsiniz:

appcenter crashes upload-symbols --breakpad {symbols file}

Sembolleri yoksayma

App Center kilitlenme raporlarını tamamen simgeleyen tüm sembol dosyalarına sahip olmadığında kilitlenmeler Simgelenmemiş sekmesinde listelenir. Gerekli simgelere erişiminiz varsa bu sayfadan karşıya yüklenir.

Simgeleri karşıya yükleyemiyorsanız, tabloda satırları seçip Sürümleri yoksay düğmesine tıklayarak bunları Yoksayıldı olarak işaretleyebilirsiniz. Bu düğme App Center'a kilitlenmeleri işlemesini ve dosyadaki sembollerle mümkün olduğunca simgelemesini söyler. İşlem tamamlandıktan sonra Kilitlenmeler sekmesinde kısmen simgelenmiş olarak görünürler. Yoksayıldı olarak işaretlenen aynı sembol kimliklerine de bağlı olan yeni kilitlenmeler, sistem içinde gelen ve sistemde akan Simgelenmemiş sekmesini atlar.