Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Viktigt!
Visual Studio App Center drogs tillbaka den 31 mars 2025, förutom analys- och diagnostikfunktionerna, som fortsätter att stödjas fram till den 30 juni 2026. Läs mer.
Problem under installationen
- Leta efter en Assert-logg i konsolen med meddelandet "App Center SDK har konfigurerats". Meddelandet innebär att SDK:et har konfigurerats.
- Om du använder Cocoapods för att integrera App Center i din iOS-app och stöter på ett fel med meddelandet –
CocoaPods - Unable to find a specification for AppCenterkörpod repo updateför att uppdatera din lokala Cocoapods-lagringsplats och körpod installsedan igen. - Om du använder CocoaPods för att integrera App Center i din iOS-app och du vid projektkompileringen stöter på ett fel med meddelandet
framework not found AppCenter.xcframework, måste du uppdatera (installera om) CocoaPods till den senaste versionen genom att köra[sudo] gem install cocoapods. - Om du integrerar SDK-binärfilerna manuellt kontrollerar du att du har moduler aktiverade för projektet.
Analysdata visas inte i portalen
Kontrollera att du har integrerat SDK-modulerna korrekt.
Kontrollera att rätt apphemlighet ingår tillsammans med metodanropet
start:withServices:. Du kan kopiera den exaktastart:withServices:koden genom att öppna appen i portalen och gå till sidan Komma igång .Om du vill se loggarna som skickas till serverdelen ändrar du loggnivån till Utförlig i ditt program. SDK:et skriver sedan ut loggarna i konsolen. Infoga följande anrop innan SDK:et startar:
[MSACAppCenter setLogLevel:MSACLogLevelVerbose]AppCenter.logLevel = .verboseKontrollera att "App Center SDK har konfigurerats framgångsrikt" visas i loggarna (på INFO-loggnivå) och kontrollera sedan om du ser HTTPS-begärandeloggar.
Kontrollera att enheten är online.
Ibland kan det ta några minuter att visa loggar i portalen. Vänta en stund om så är fallet.
Om du vill kontrollera om App Center-serverdelen har tagit emot dina data går du till avsnittet Loggflöde i Analytics-tjänsten . Dina händelser bör visas när de har skickats.
Krascher visas inte i portalen
Kontrollera att du har integrerat SDK-modulerna korrekt.
Kontrollera att rätt apphemlighet ingår tillsammans med metodanropet
start:withServices:. Du kan kopiera den exaktastart:withServices:koden genom att öppna appen i portalen och navigera till sidan Komma igång .App Center Crashes vidarebefordrar kraschloggen först när appen startas om. Dessutom vidarebefordrar SDK:t inte några kraschloggar om du är ansluten till felsökningsprogrammet. Kontrollera att felsökaren inte är ansluten när du kraschar appen.
Om du vill se loggarna som skickas till serverdelen ändrar du loggnivån till Utförlig i ditt program. SDK:et skriver sedan ut loggarna i konsolen. Infoga följande anrop innan SDK:et startar:
[MSACAppCenter setLogLevel:MSACLogLevelVerbose]AppCenter.logLevel = .verboseKontrollera att "App Center SDK har konfigurerats framgångsrikt" visas i loggarna (på INFO-loggnivå) och kontrollera sedan om du ser HTTPS-begärandeloggar.
Använd inte andra bibliotek som tillhandahåller funktioner för kraschrapportering. Du kan bara ha en SDK för kraschrapportering integrerad i din app.
Kontrollera att enheten är online.
Ibland kan det ta några minuter att visa loggar i portalen. Vänta en stund om så är fallet.
Kontrollera om SDK:et upptäckte kraschen vid nästa appstart. Du kan anropa API:et för att kontrollera om appen kraschade under den senaste sessionen och visar en avisering. Eller så kan du utöka krasch-callbacken
didSucceedSendingErrorReportför att se om det har skickats till servern.Om du vill kontrollera om App Center-serverdelen tog emot kraschen går du till avsnittet Loggflöde i Analytics-tjänsten. Dina krascher bör visas där, efter att de har skickats.
Aviseringen som uppmanar användarna om en uppdatering innehåller inte strängar, utan bara nycklarna för dem
Det innebär att AppCenterDistributeResources.bundle inte lades till i projektet. Kontrollera att du har släppt filen i Xcode-projektet och att den visas i appmålets Copy Bundle Resources byggfas. Den bör visas där om du har lagt till filen genom att dra och släppa – Xcode gör det automatiskt åt dig. Om filen saknas i byggfasen lägger du till den så att den kompileras till appens paket.
Om du använder Cocoapods tar det hand om resurserna automatiskt. Prova att installera om podden.
Du ser meddelanden i konsolen som anger att databasen inte kunde öppnas
Från och med version 0.11.0 av iOS SDK använder App Center SQLite för att spara loggar innan det skickar dem till serverdelen. Om du paketerar ditt program med ditt eget SQLite-bibliotek i stället för att använda det som tillhandahålls av operativsystemet kan du se fel som detta i konsolen [AppCenter] ERROR: -[MSACDBStorage executeSelectionQuery:]/147 Failed to open database och inte se någon analys- eller kraschinformation i serverdelen. Uppdatera SDK:t till version 0.13.0 eller senare.
Distribuering av uppdateringar och uppdateringar i appen blockerar mina automatiserade användargränssnittstester
Om uppdateringar i appen är aktiverade blockerar de dina automatiserade användargränssnittstester. Uppdateringsprocessen försöker autentisera mot App Center-serverdelen. Vi rekommenderar att du inte aktiverar App Center Distribute för ditt UI-testmål.
Varför SDK:t distribueras som ett "statiskt bibliotek"
De primära designmålen för App Center SDK är att ha en minimal inverkan på appen med hjälp av App Center och att ha ett modulärt SDK. Detta skulle leda till att SDK:t distribueras som flera dynamiska länkade delade bibliotek.
App Center distribueras dock som ett statiskt länkat delat bibliotek som är inslaget i ett "tjockt" pseudo-ramverk. Det innebär att SDK:t är länkat vid kompileringstid och inte vid starttid för bättre prestanda. Det tar tid att läsa in flera dynamiska länkade delade bibliotek.
Apple rekommenderar att du optimerar appstarten så att den tar högst 400 ms i en WWDC-session. De rekommenderar specifikt statiska delade bibliotek framför dynamiska delade bibliotek för att uppnå det här målet. Distribution av App Center SDK för iOS som ett statiskt länkat delat bibliotek följer Apples rekommendation att ge bästa prestanda och minimal påverkan på appen som innehåller SDK.
Om du vill veta mer om statiskt länkade delade bibliotek jämfört med dynamiska länkade delade bibliotek rekommenderar vi Apples allmänna dokumentation om ämnet.
Varför är SDK-binärfilerna så stora? Jag är bekymrad över appens storlek
AppCenter-binärfilerna distribueras som "feta" ramverk som innehåller sektorer för alla iPhone-arkitekturer och för iPhone-simulatorn. Därför är till exempel AppCenter.framework 10,5 MB att ladda ned.
Den kompilerade storleken på SDK-binärfilerna blir mycket mindre än den .framework som du lägger till i din app i Xcode. Tänk också på att versionsversioner kommer att vara mindre än felsökningsversioner också.
För att illustrera detta skapade vi ett tomt Objective-C program med Xcode 9.2, lade till App Center-binärfilerna i appen och distribuerade versionsversioner till en iPhone 7 som kör iOS 11.3.
Vi körde testerna utan att Bitcode var aktiverat och använde inte appförtunning. Du kan använda dessa tekniker för att minska appens binära storlek ännu mer.
Siffrorna nedan kan variera och beror på dina bygginställningar, så betrakta dem som en grov guide. Att lägga till App Center SDK i din app har dock en minimal inverkan på storleken på ditt binära program.
| App Center-moduler som används | Exporterad IPA-storlek | Installationsstorlek |
|---|---|---|
| Ingen (tom app) | 24 kB | 132 KB |
| App Center Analytics | 120 KB | 377 KB |
| Krasch i App Center | 239 KB | 705 KB |
| Distribuera App Center | 163 KB | 528 KB |
| Alla App Center-moduler | 314 KB | 930 KB |
Skydda App Center-hemlighetsvärdet
app_secret Är en identifierare för din app, det är nödvändigt att veta vilken app trafiken gäller för och det kan inte användas för att hämta eller redigera befintliga data. Om din app_secret exponeras är den största risken att skicka felaktiga data till din app, men det påverkar inte datasäkerheten.
Om du vill hämta känsliga data måste du ange en app-/ användartoken som genereras på klientsidan. Det går inte att göra data på klientsidan helt säkra.
Du kan förbättra din apps säkerhet genom att använda en miljövariabel för att mata in apphemligheten i koden. På så sätt syns inte hemligheten i koden.