iOS Sembolikleştirmesi
Ö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.
macOS, tvOS ve iOS kilitlenme raporları, kilitlenme oluştuğu sırada uygulamanızın çalışan tüm iş parçacıkları için yığın izlemelerini gösterir. Yığın izlemeleri yalnızca bellek adreslerini içerir; kilitlenmeleri anlamak için gereken sınıf adları, yöntemler, dosya adları veya satır numaraları değildir.
Bellek adreslerinin çevrilmesi için simgeselleştirme için gereken tüm bilgileri içeren bir dSYM paketini App Center'a yüklemeniz gerekir. Apple'ın resmi geliştirici belgelerinden sembolikleştirme hakkında daha fazla bilgi edinebilirsiniz.
App Center Derleme ve Dağıtım hizmeti otomatik olarak geçerli bir dSYM ve kaynak eşleme .zip
dosyası oluşturabilir ve dosyayı Tanılama hizmetine yükleyebilir. Uygulamanızı derlemek ve son kullanıcılarınıza otomatik olarak dağıtmak için App Center kullanıyorsanız, sembol dosyalarını el ile edinmeniz ve karşıya yüklemeniz gerekmez.
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.
.dSYM
Paketi bulma
- Xcode'da Pencere menüsünü açın ve Düzenleyici'yi seçin.
- Arşivler sekmesini seçin.
- Sol kenar çubuğundan uygulamanızı seçin.
- En son arşive sağ tıklayın ve Bulucu'da Göster'i seçin.
- Bulucu'da dosyaya
.xcarchive
sağ tıklayın ve Paket İçeriğini Göster'i seçin. - dSYM paketinizi içeren adlı
dSYMs
bir klasör görmeniz gerekir. - dSYM paketinin zip dosyasını oluşturun.
Xcode yerine Visual Studio kullanıyorsanız, dSYM dosyasını bulmak için bkz. iOS kilitlenme günlüklerini simgeleştirmek için dSYM dosyasını nerede bulabilirim?
Sembolleri karşıya yükleme
App Center Portalı
- App Center'da oturum açın ve uygulamanızı seçin.
- Soldaki menüde Tanılama bölümüne gidin ve Simgeler'i seçin.
- Sağ üst köşede Simgeleri karşıya yükle'ye tıklayın ve dosyayı karşıya yükleyin.
- Simgeler App Center tarafından dizine alındıktan sonra kilitlenmeler sizin için sembolik hale gelir.
iOS uygulamalarını React Native
React Native iOS dosyalarının sembol dosyalarını almak için Mac bilgisayarınızda dSYM paketi ve uygulamanızın JavaScript kaynak haritası ile bir ZIP dosyası oluşturun. Kaynak eşleme olarak adlandırılmalıdır index.ios.map
. Aşağıdaki komutlar yayın derlemeleri için kaynak haritayı oluşturur:
react-native bundle --entry-file index.ios.js --platform ios --dev false --reset-cache --bundle-output unused.jsbundle --sourcemap-output index.ios.map
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 Apple
ayarlanmalıdırsymbol_type
.
- symbol_uploads API'sine bir
POST
istek tetikleme. Bu çağrı, dosyanız için arka uçta yer ayırır ve birsymbol_upload_id
veupload_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}'
upload_url
İlk adımda döndürülen özelliğini kullanarak üst bilgiyle birPUT
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}'
- İlk adımda döndürülen özelliğini kullanarak
symbol_upload_id
symbol_uploads API'sine birPATCH
istek gönderin. İsteğin gövdesinde, karşıya yüklemenin durumunu karşıya yüklemecommitted
işlemine (başarıyla tamamlandı) veyaaborted
(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 --symbol {symbol file}
Bit kodu
Bitcode, App Store gönderilen uygulamaların Apple tarafından yeniden derlenip en son iyileştirmeyi uygulamasına izin vermek için Apple tarafından tanıtıldı. Bitcode etkinleştirilirse, mağazadaki uygulamanız için oluşturulan simgeler kendi derleme sisteminizden farklı olacaktır.
App Center kilitlenme raporlaması henüz bitcode özellikli uygulamalardan gelen kilitlenmelerin simgeselleştirmesini tam olarak desteklemez. Bu arada bit kodunu devre dışı bırakmanızı öneririz. Bit kodunun devre dışı bırakılması sembol yönetimini önemli ölçüde basitleştirir ve şu anda iOS uygulamaları için bilinen herhangi bir dezavantajı yoktur.
Uygulamanız için bit kodunu devre dışı bırakma
- Xcode'da Proje Gezgini'nde üst düzey öğeye tıklayarak proje ayarlarınızı açın
- Derleme Ayarları sayfasına gidin
bitcode
arayın.- Sonuçta evet olan değeri Hayır olarak değiştirin
- Uygulamanızı yeniden oluşturma
Bu basit adımlarla App Center kilitlenme raporlaması her zamanki gibi davranır.
Bit kodu etkin uygulamalar için sembolleri alma
Bit kodunu etkin tutmak istiyorsanız, aşağıdaki adımları izleyerek uygun dSYM dosyalarını indirebilirsiniz:
- Xcode'un Düzenleyicisini açma
- Uygulamanızın iTunes Connect'e yüklediğiniz belirli arşivini seçin
- "dSYM'leri indir" düğmesine tıklayın. Bu adım, Bitcode derlenmiş dSYM dosyalarını özgün arşive ekler.
- Simgeleri App Center'da ilgili uygulamaya ve sürüme yükleme
Xcode düzenleyicisi yeni simge sağlamıyorsa, aşağıdaki adımları izleyerek iTunes Connect portalından dSYM dosyalarını indirmeniz gerekir:
- iTunes Connect portalında uygulamanızı seçin
- Üst kısımdaki Etkinlik sekmesini seçin
- Uygulamanızın eksik simgeleri içeren derleme sürümünü seçin
- dSYM'yi indir bağlantısına tıklayın
- İndirilen dosyayı App Center'a yükleyin. Bu dosya, App Center'ın kilitlenmelerinizi sembolikleştirmesi için gereken simgeleri içerir.
Sembol sorunlarını giderme
Sembolleri karşıya yükledikten ve bit kodunu devre dışı bırakdıktan sonra kilitlenmeleriniz hala simgelenmemiş olarak görünüyorsa, bunun nedeni karşıya yüklenen dSYM dosyalarının App Center'ın gerektirdiği dosyalarla eşleşmemiş olması olabilir. dSYM dosyalarını karşıya yüklediğinizde, App Center bunları UUID'lerine göre doğru uygulama sürümüyle eşleştirir.
cücedişim adlı bir CLI aracı kullanarak dSYM dosyalarınızın doğru UUID'lere sahip olup olmadığını bir kez daha kontrol edebilirsiniz.
- DSYM dosyasında UUID'yi bulun:
dwarfdump --u CrashProbeiOS.app.dSYM
- Sonuç şöyle görünmelidir:
UUID:ADF53C85-4638-3EFF-A33C-42C13A18E915 (armv7)CrashProbeiOS.app.dSYM/Contents/Resources/DWARF/CrashProbeiOS
UUID:D449E33D-7E74-379D-8B79-15EE104ED1DF (arm64)CrashProbeiOS.app.dSYM/Contents/Resources/DWARF/CrashProbeiOS
- Döndürülen UUID'nin hata ayıklama simgeleri iletişim kutusunda gösterilen UUID'lerle eşleşip eşleşmediğini bir kez daha denetleyin:
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.