Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Önemli
Visual Studio App Center, 30 Haziran 2026'ya kadar desteklenmeye devam edecek Analiz ve Tanılama özellikleri dışında 31 Mart 2025'te kullanımdan kaldırılmıştır. Daha fazla bilgi edinin.
SDK'mızı kullanmak veya özel bir platform için geliştirmeyi düşünmüyorsanız, bir hata raporu karşıya yükleyebilirsiniz. App Center'a kilitlenme, hata veya ek dosyası günlüğü yükleyin ve ayrıntıları App Center Tanılama kullanıcı arabiriminde görüntüleyin. Aşağıdaki bölümler, kilitlenmeler, hatalar ve eklerin nasıl karşıya yükleneceğini açıklayacaktır.
Uyarı
App Center, benzersiz uygulama başına dakikada en fazla 60 kilitlenme ve işleme hatası kabul eder. Bu sınırı aşan kilitlenmeleri veya hataları işlemeyeceğiz.
Bir raporu karşıya yüklemek için App Center veri alma uç noktasını https://in.appcenter.ms/logs?Api-Version=1.0.0
aşağıdaki başlıklarla çağırın:
-
Content-Type
: gövdenin biçimini açıklar. App Center şu anda yalnızca JSON biçimini destekler. -
App-Secret
: her uygulamanın benzersiz tanımlayıcısı olan dize. Uygulama sırrını bir uygulamanın ayarlarında bulabilirsiniz. -
Install-ID
: sayıları izlemek için GUID olarak kullanılabilecek herhangi bir dize.
Günlük özellikleri:
-
type
: günlük türüne sahip gerekli dize - Apple kilitlenmeleri için "appleError", diğer kilitlenmeler için "managedError", hatalar için "handledError" ve hata ekleri için "errorAttachment". -
timestamp
: günlük tarih ve saat damgası olan isteğe bağlı dize, örneğin "2017-03-13T18:05:42Z" - ayarlandıysa, alınma zamanının gelecekteki zamandan en fazla 72 saat olmalıdır -
appLaunchTimestamp
: uygulamanın başlatıldığı zaman damgası tarih-saatini belirten gerekli dize, örneğin "2017-03-13T18:05:42Z". -
device
: cihaz özelliklerine sahip gerekli nesne-
appVersion
: uygulama sürümü adıyla gerekli dize, örneğin "1.1.0" -
appBuild
: uygulama derleme numarasıyla gerekli dize, örneğin "42" -
sdkName
: SDK adıyla gerekli dize. SDK'nın ve platformun adından oluşur, örneğin Android için "appcenter.android" ve özel platformlar için "appcenter.custom" -
sdkVersion
: ANLAMsal sürüm oluşturma biçiminde SDK sürümüne sahip gerekli dize, örneğin "1.2.0" veya "0.12.3-alpha.1" -
osName
: işletim sistemi adıyla gerekli dize, örneğin "android" -
osVersion
: işletim sistemi sürümüne sahip gerekli dize, örneğin "9.3.0" -
model
: cihaz modeliyle isteğe bağlı dize, örneğin "iPad2" -
locale
: "en-US" gibi dil koduyla gerekli dize -
timeZoneOffset
: cihaz saat dilimi için Eşgüdümlü Evrensel Saat'ten (UTC) dakika cinsinden isteğe bağlı uzaklık (-840 ile 840 arasında). Yaz saati dahil, örneğin 120.
-
-
userId
: günlükleri kullanıcılarla ilişkilendirmek için kullanılan isteğe bağlı dize -
exception
: özel durum ayrıntılarıyla gerekli nesne-
type
: özel durum türüne sahip gerekli dize -
frame
: yığın çerçeveli isteğe bağlı dizi -
message
: özel durum nedenini içerme olasılığı olan isteğe bağlı dize -
stackTrace
: ham yığın izi içeren isteğe bağlı dize -
innerException
: iç istisnalarla isteğe bağlı dizi
-
Kilitlenme raporu, hata raporu ve eki yükleme örneklerini aşağıda bulabilirsiniz. Daha fazla belirtim için dosyanın tamamını burada bulabilirsiniz.
Uyarı
Bekletme ilkeleri nedeniyle raporun timestamp
son 25 günden veya gelecekte 3 günden fazla olmaması gerekir.
Kilitlenme raporunu yükle
Çökme raporunu yüklemek için aşağıdaki bilgiler gereklidir.
-
processId
: işlem tanımlayıcısı ile gerekli tamsayı -
id
: bu rapor için gerekli olan, özel durum tanımlayıcısı içeren benzersiz bir kimlik dizisi olması gerekir -
fatal
: özel durumun kilitlenmeye neden olup olmadığını gösteren gerekli boole değeri -
processName
: işlem adıyla gerekli dize -
appNamespace
: Android uygulamaları için gereklidir, aksi takdirde hangi platformun kullanıldığına bağlı olarak paket tanımlayıcısı, paket kimliği veya ad alanı ile isteğe bağlı dizedir.
Apple formatı dışında bir kilitlenme raporu yüklemek için, günlük türünün "managedError" olarak ayarlandığından emin olun.
curl -X POST \
'https://in.appcenter.ms/logs?Api-Version=1.0.0' \
-H 'Content-Type: application/json' \
-H 'app-secret: <app secret>' \
-H 'install-id: 00000000-0000-0000-0000-000000000001' \
-d '{
"logs": [
{
"type": "managedError",
"timestamp": "2019-10-08T04:22:23.516Z",
"appLaunchTimestamp": "2019-09-29T22:22:23.516Z",
"processId": "123",
"id": "bca65f46-46ee-451b-83bb-2e358c3f45bf",
"fatal": true,
"processName": "com.microsoft.appcenter.demo.project",
"device": {
"appVersion": "12.0",
"appBuild": "1",
"sdkName": "custom.android",
"sdkVersion": "1.0.0",
"osName": "android",
"osVersion": "9.3",
"model": "Pixel",
"locale": "en-US",
"appNamespace": "com.contoso.myapp"
},
"userId": "TestID",
"exception": {
"type": "java.lang.RuntimeException",
"frames": [
{
"className": "android.app.ActivityThread",
"fileName": "ActivityThread.java",
"lineNumber": 2575,
"methodName": "performResumeActivity"
},
{
"className": "android.app.ActivityThread",
"fileName": "ActivityThread.java",
"lineNumber": 2603,
"methodName": "handleResumeActivity"
},
{
"className": "android.app.ActivityThread",
"fileName": "ActivityThread.java",
"lineNumber": 2089,
"methodName": "handleLaunchActivity"
},
{
"className": "android.app.ActivityThread",
"fileName": "ActivityThread.java",
"lineNumber": 130,
"methodName": "access$600"
},
{
"className": "android.app.ActivityThread$H",
"fileName": "ActivityThread.java",
"lineNumber": 1195,
"methodName": "handleMessage"
},
{
"className": "android.os.Handler",
"fileName": "Handler.java",
"lineNumber": 99,
"methodName": "dispatchMessage"
},
{
"className": "android.os.Looper",
"fileName": "Looper.java",
"lineNumber": 137,
"methodName": "loop"
},
{
"className": "android.app.ActivityThread",
"fileName": "ActivityThread.java",
"lineNumber": 4745,
"methodName": "main"
}
],
"innerExceptions": [
{
"type": "java.lang.RuntimeException",
"frames": [
{
"className": "android.app.Activity",
"fileName": "Activity.java",
"lineNumber": 5084,
"methodName": "performResume"
},
{
"className": "android.app.ActivityThread",
"fileName": "ActivityThread.java",
"lineNumber": 2565,
"methodName": "performResumeActivity"
},
{
"className": "android.app.ActivityThread",
"fileName": "ActivityThread.java",
"lineNumber": 2603,
"methodName": "handleResumeActivity"
}
]
}
]
}
}
]
}'
Apple kilitlenme günlüğünü karşıya yükleyin
Apple kilitlenme günlüğünü yüklemek için günlük türünün "appleError" olduğundan emin olun. Aşağıdaki özellikler de gereklidir:
-
primaryArchitectureId
: CPU birincil mimarisi ile gerekli tamsayı -
applicationPath
: uygulamanın yolunu içeren gerekli dize -
osExceptionType
: OS özel durum türü gerektiren dize -
osExceptionCode
: işletim sistemi özel durum koduyla gerekli dize -
osExceptionAddress
: işletim sistemi özel durum adresiyle gerekli dize -
binaries
: hatayla ilişkili ikili dosyalar içeren gerekli olan dizi
Örneğin:
curl -X POST \
'https://in.appcenter.ms/logs?Api-Version=1.0.0' \
-H 'Content-Type: application/json' \
-H 'app-secret: <app secret>' \
-H 'install-id: 00000000-0000-0000-0000-000000000001' \
-d '{
"logs":
[
{
"type": "appleError",
"timestamp": "2019-10-08T02:44:55.000Z",
"appLaunchTimestamp": "2019-09-29T22:22:23.516Z",
"id": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
"applicationPath": "iOS/salesforce",
"osExceptionType": "CustomerIssue (TestIssue)",
"osExceptionCode": "0",
"osExceptionAddress": "0x00",
"processName": "salesforce",
"fatal": true,
"isTestMessage": false,
"device": {
"appVersion": "10.0",
"appBuild": "1",
"sdkName": "custom.ios",
"sdkVersion": "1.0.0",
"osName": "iOS",
"osVersion": "9.3",
"model": "iPhone9,1",
"locale": "en-US"
},
"userId": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
"fatal": true,
"threads": [
{
"id": 0,
"frames": [
{
"address": "0x000000018ada4d70",
"code": "0x18ad87000 + 122224"
},
{
"address": "0x0000000104463884",
"code": "0x10445c000 + 30852"
},
{
"address": "0x000000010438f640",
"code": "0x104388000 + 30272"
},
{
"address": "0x00000001b859fb64",
"code": "0x1b8229000 + 3631972"
}
]
},
{
"id": 1,
"frames": [
{
"address": "0x000000018bb4fce0",
"code": "0x18baa2000 + 711904"
},
{
"address": "0x000000018bbf7078",
"code": "0x18baa2000 + 1396856"
},
{
"address": "0x000000018baa8258",
"code": "0x18baa2000 + 25176"
},
{
"address": "0x000000018bb1c49c",
"code": "0x18baa2000 + 500892"
}
]
},
{
"id": 3,
"frames": [
{
"address": "0x000000018b755b9c",
"code": "0x18b732000 + 146332"
},
{
"address": "0x000000018b7dcd00",
"code": "0x18b7ce000 + 60672"
}
]
}
],
"binaries": [
{
"id": "d449e33d-7e74-379d-8b79-15ee104ed1df",
"startAddress": "0x0000000104388000",
"endAddress": "0x0000000104413fff",
"name": "CrashProbeiOS",
"path": "/var/containers/Bundle/Application/023013EA-0D58-4F6D-8B98-49E1372F4044/CrashProbeiOS.app/CrashProbeiOS",
"primaryArchitectureId": 16777228,
"architectureVariantId": 0
},
{
"id": "5da23653-d126-39f0-bdcf-994b3019f92c",
"startAddress": "0x000000010445c000",
"endAddress": "0x0000000104467fff",
"name": "CrashLibiOS",
"path": "/private/var/containers/Bundle/Application/023013EA-0D58-4F6D-8B98-49E1372F4044/CrashProbeiOS.app/Frameworks/CrashLibiOS.framework/CrashLibiOS",
"primaryArchitectureId": 16777228,
"architectureVariantId": 0
}
]
}
]
}'
Özel kilitlenme günlüğü yükleyin
Özel bir platformda çökme yüklemek için, günlük türünün "managedError" ve SDK adının "appcenter.custom" olarak ayarlandığından emin olun. Örneğin:
curl -X POST \
'https://in.appcenter.ms/logs?Api-Version=1.0.0' \
-H 'Content-Type: application/json' \
-H 'app-secret: <app secret>' \
-H 'install-id: 00000000-0000-0000-0000-000000000001' \
-d '{
"logs": [
{
"type": "managedError",
"id": "a7bea41b-1e4d-4e42-ae76-1025f4fdfc4f",
"userId": "TestID",
"timestamp": "2019-11-26T02:00:04Z",
"appLaunchTimestamp": "2019-11-26T02:00:04Z",
"architecture": "armeabi-v7a",
"fatal": true,
"processId": 4871,
"processName": "com.microsoft.appcenter.sasquatch.project",
"sid": "bca65f46-46ee-451b-83bb-2e358c3f45bf",
"errorThreadId": 1,
"errorThreadName": "main",
"device": {
"appBuild": "1337",
"appVersion": "7.1.0",
"appNamespace": "com.microsoft.appcenter.sasquatch.project",
"carrierCountry": "us",
"locale": "en_US",
"model": "Galaxy Nexus",
"oemName": "samsung",
"osApiLevel": 16,
"osBuild": "JRO03O",
"osName": "Android",
"osVersion": "5.0.0",
"screenSize": "720x1184",
"sdkName": "appcenter.custom",
"sdkVersion": "1.9.1",
"timeZoneOffset": -480
},
"exception": {
"frames": [
{
"className": "android.app.ActivityThread",
"fileName": "ActivityThread.java",
"lineNumber": 2575,
"methodName": "performResumeActivity"
},
{
"className": "android.app.ActivityThread",
"fileName": "ActivityThread.java",
"lineNumber": 2603,
"methodName": "handleResumeActivity"
},
{
"className": "android.app.ActivityThread",
"fileName": "ActivityThread.java",
"lineNumber": 2089,
"methodName": "handleLaunchActivity"
}
],
"innerExceptions": [
{
"frames": [
{
"className": "android.app.CustomActivity",
"fileName": "CustomActivity.java",
"lineNumber": 8673,
"methodName": "performCustomResume"
},
{
"className": "android.app.ActivityThread",
"fileName": "ActivityThread.java",
"lineNumber": 2565,
"methodName": "performResumeActivity"
}
],
"message": "Activity {com.microsoft.appcenter.sasquatch.project/com.microsoft.appcenter.sasquatch.activities.CrashSubActivity2} did not call through to super.onResume()",
"type": "android.app.CustomNotCalledException"
}
],
"message": "Unable to resume activity {com.microsoft.appcenter.sasquatch.project/com.microsoft.appcenter.sasquatch.activities.CrashSubActivity2}: android.app.SuperNotCalledException: Activity {com.microsoft.appcenter.sasquatch.project/com.microsoft.appcenter.sasquatch.activities.CrashSubActivity2} did not call through to super.onResume()",
"type": "java.lang.RuntimeException"
},
"threads": [
{
"frames": [
{
"className": "dalvik.system.NativeStart",
"fileName": "NativeStart.java",
"lineNumber": -2,
"methodName": "run"
}
],
"id": 369,
"name": "Binder_3"
},
{
"frames": [
{
"className": "dalvik.system.NativeStart",
"fileName": "NativeStart.java",
"lineNumber": -2,
"methodName": "run"
}
],
"id": 345,
"name": "Compiler"
}
]
}
]
}'
Breakpad kilitlenme günlüğünü ve Minidump'ı yükleyin
Android ve Windows için özel bir Breakpad çökmesi yükleyebilirsiniz. Örneğin:
curl -X POST \
'https://in.appcenter.ms/logs?Api-Version=1.0.0' \
-H 'Content-Type: application/json' \
-H 'app-secret: <app secret>' \
-H 'install-id: 00000000-0000-0000-0000-000000000001' \
-d '{
"logs":
[
{
"type": "managedError",
"id": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
"userId": "TestID",
"processId": 9448,
"processName": "Contoso.UWP.Puppet.exe",
"fatal": true,
"timestamp": "2019-10-08T06:22:23.530Z",
"architecture": "X64",
"timestamp": "2019-10-08T06:22:23.516Z",
"sid": "d4608adf-83b9-4f69-90ad-8bb0234080a7",
"device": {
"sdkName": "appcenter.custom",
"sdkVersion": "2.4.1-SNAPSHOT",
"model": "Parallels Virtual Platform",
"oemName": "Parallels Software International Inc.",
"osName": "WINDOWS",
"osVersion": "10.0.18363",
"osBuild": "10.0.18363.418",
"locale": "en-US",
"timeZoneOffset": -300,
"screenSize": "4608x2470",
"appVersion": "1.0",
"appBuild": "1.0",
"appNamespace": "10805zumoTestUser.AppCenter-Contoso.UWP.Puppet",
"carrierCountry": "us",
"wrapperSdkName": "custom.ndk"
},
"exception": {
"type": "minidump",
"wrapperSdkName": "custom.ndk"
}
},
{
"contentType": "application/octet-stream",
"errorId": "00aa00aa-bb11-cc22-dd33-44ee44ee44ee",
"fileName": "minidump.dmp",
"id": "7b975468-5656-40a5-8242-c1907b26fc31",
"sid": "03693776-cdd4-46b8-bbda-12af457f1732",
"timestamp": "2019-10-08T06:22:23.516Z",
"type": "errorAttachment",
"device": {
"sdkName": "appcenter.custom",
"sdkVersion": "2.4.1-SNAPSHOT",
"model": "Parallels Virtual Platform",
"oemName": "Parallels Software International Inc.",
"osName": "WINDOWS",
"osVersion": "10.0.18363",
"osBuild": "10.0.18363.418",
"locale": "en-US",
"timeZoneOffset": -300,
"screenSize": "4608x2470",
"appVersion": "1.0",
"appBuild": "1.0",
"appNamespace": "10805zumoTestUser.AppCenter-Contoso.UWP.Puppet",
"carrierCountry": "us",
"wrapperSdkName": "custom.ndk"
},
"data": "<base64 encoded minidump>"
}
]
}'
Uyarılar
Kesme Çubuğu kilitlenmesini wrapperSdkName
karşıya yüklemek için alanın "custom.ndk" olarak ayarlanması ve minidump dosyasını kilitlenme raporuna ek olarak eklemeniz gerekir. Bu sayfanın ekler bölümünde ek göndermeyi öğrenin.
Kilitlenmenizi sembolik hale getirmek için, API belgelerimize göre sembollerinizi CLI veya API aracılığıyla karşıya yüklemeniz gerekir. Android ile Kesme Çubuğu kullanıyorsanız, Android NDK belgelerimizde belirtilen her iki seçenek de desteklenir; Windows ile Kesme Çubuğu kullanıyorsanız yalnızca 2. seçenek: "Kesme Çubuğu simgelerini karşıya yükleme" desteklenir.
Uyarı
Simgelerinizi macOS'tan 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/\*
.
Hata raporu yükle
Bugün için işlenen hatalar yalnızca Android, Xamarin, Unity, UWP, WPF ve WinForms uygulamaları için desteklenir. Bir hata raporunu yüklemek için log türünün "handledError" olarak ayarlandığından emin olun.
curl -X POST \
'https://in.appcenter.ms/logs?Api-Version=1.0.0' \
-H 'Content-Type: application/json' \
-H 'app-secret: <app secret>' \
-H 'install-id: 00000000-0000-0000-0000-000000000001' \
-d '{
"logs":
[
{
"type": "handledError",
"timestamp": "2019-10-08T06:22:23.516Z",
"appLaunchTimestamp": "2019-09-29T22:22:23.516Z",
"id": "118dee14-9193-4ac3-9ef0-f6c11b43f2c4",
"device": {
"appVersion": "11.0",
"appBuild": "1",
"sdkName": "custom.android",
"sdkVersion": "1.0.0",
"osName": "android",
"osVersion": "9.3",
"model": "Pixel",
"locale": "en-US"
},
"userId": "TestID",
"exception": {
"type": "System.IO.IOException",
"message": "Server did not respond",
"stackTrace": " at Contoso.Forms.Puppet.FakeService+<>c.<DoStuffInBackground>b__0_0 () [0x00000] in <7ad93f134a5d4c00a8db8be9aa9c0f76>:0 \n at System.Threading.Tasks.Task`1[TResult].InnerInvoke () [0x0000f] in <b38d4262627948c1b945a72f56ce6466>:0 \n at System.Threading.Tasks.Task.Execute () [0x00010] in <b38d4262627948c1b945a72f56ce6466>:0 \n--- End of stack trace from previous location where exception was thrown ---\n at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x0000c] in <b38d4262627948c1b945a72f56ce6466>:0 \n at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (System.Threading.Tasks.Task task) [0x0003e] in <b38d4262627948c1b945a72f56ce6466>:0 \n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (System.Threading.Tasks.Task task) [0x00028] in <b38d4262627948c1b945a72f56ce6466>:0",
"innerExceptions": [
{
"type": "System.IO.IOException",
"message": "Network down",
"stackTrace": " at Contoso.Forms.Demo.CrashesContentPage.SendHttp () [0x00002] in <4fd9174f6e18457b9721bfba2cd78098>:0 ",
"wrapperSdkName": "appcenter.xamarin"
},
{
"type": "System.ArgumentException",
"message": "Invalid parameter",
"innerExceptions": [
{
"type": "System.ArgumentOutOfRangeException",
"message": "It is over 9000!",
"stackTrace": " at Contoso.Forms.Demo.CrashesContentPage.ValidateLength () [0x00002] in <4fd9174f6e18457b9721bfba2cd78098>:0 ",
}
],
}
],
}
}
]
}'
Ek dosya yükle
Tüm ek dosyaları bir kilitlenme raporuyla ilişkilendirilmelidir. Bir aramada veya iki ayrı aramada, kilitlenme raporu içeren bir ek dosya yüklenebilir.
Eke özgü özellikler:
-
contentType
: içerik türüne sahip gerekli dize, örneğin, metin için "metin/düz". Desteklenen türe ait örnekleri burada bulabilirsiniz -
data
: temel 64 olarak kodlanmış veri içeren gerekli dize -
errorId
: ekin ilişkili hata raporunun benzersiz tanımlayıcısını içeren gerekli dize -
fileName
: NDK kilitlenmeleri için "minidump.dmp" olarak ayarlanan gerekli dize
Uyarı
Ekler için boyut sınırı şu anda 7 MB'tır. Daha büyük bir ek göndermeye çalışmak bir hatayı tetikler.
Aşağıda bir hata raporu ve eki tek bir çağrıda yükleme örneği verilmiştir.
curl -X POST \
'https://in.appcenter.ms/logs?Api-Version=1.0.0' \
-H 'Content-Type: application/json' \
-H 'app-secret: <app secret>' \
-H 'install-id: 00000000-0000-0000-0000-000000000001' \
-d '{
"logs": [
{
"type": "managedError",
"timestamp": "2019-10-01T02:22:23.516Z",
"appLaunchTimestamp": "2019-09-29T22:22:23.516Z",
"id": "bca65f46-46ee-451b-83bb-2e358c3f45bf",
"fatal": true,
"processName": "com.microsoft.appcenter.sasquatch.project",
"device": {
"appVersion": "13.0",
"appBuild": "1",
"sdkName": "appcenter.android",
"sdkVersion": "1.0.0",
"osName": "android",
"osVersion": "9.3",
"model": "Pixel",
"locale": "en-US"
},
"userId": "118dee14",
"fatal": true,
"exception": {
"type": "CustomerIssue",
"frames": []
}
},
{
"type": "errorAttachment",
"contentType": "text/plain",
"timestamp": "2019-10-01T02:22:23.516Z",
"data": "aGVsbG8=",
"errorId": "bca65f46-46ee-451b-83bb-2e358c3f45bf",
"id": "7caaea8e-dab1-4588-993c-95de2d9a4fd1",
"device": {
"appVersion": "13.0",
"appBuild": "1",
"sdkName": "appcenter.android",
"sdkVersion": "1.0.0",
"osName": "android",
"osVersion": "9.3",
"model": "Pixel",
"locale": "en-US"
}
}
]
}'