iOS SDK Sorunlarını Giderme
Ö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.
Kurulum sırasında karşılaşılan sorunlar
- konsolunda, "App Center SDK başarıyla yapılandırıldı" iletisini içeren bir Assert günlüğü arayın. İleti, SDK'nın başarıyla yapılandırıldığını gösterir.
- App Center'ı iOS uygulamanızda tümleştirmek için Cocoapods kullanıyorsanız ve şu iletiyle bir hatayla karşılaşırsanız:
CocoaPods - Unable to find a specification for AppCenter
komutunu çalıştırarakpod repo update
yerel Cocoapods deponuzu güncelleştirin ve sonra yeniden çalıştırınpod install
. - App Center'ı iOS uygulamanızda tümleştirmek için CocoaPods kullanıyorsanız ve proje derlemesi sırasında iletisiyle bir hatayla karşılaşırsanız,
framework not found AppCenter.xcframework
Cocoapods'u çalıştırarak[sudo] gem install cocoapods
geç sürüme güncelleştirmeniz (yeniden yüklemeniz) gerekir. - SDK ikili dosyalarını el ile tümleştiriyorsanız projeniz için modüllerin etkinleştirildiğinden emin olun.
Analiz verileri portalda gösterilmiyor
SDK modüllerini doğru bir şekilde tümleştirdiğinizden emin olun.
Yöntem çağrısıyla birlikte doğru Uygulama Gizli Dizisi'nin de eklendiğinden
start:withServices:
emin olun. Uygulamayı portalda açıp Başlarken sayfasına giderek tamstart:withServices:
-code değerini kopyalayabilirsiniz.Arka uçtan gönderilen günlükleri görmek istiyorsanız, uygulamanızda günlük düzeyini Ayrıntılı olarak değiştirin. Ardından SDK, konsoldaki günlükleri yazdırır. SDK başlamadan önce aşağıdaki çağrıyı ekleyin:
[MSACAppCenter setLogLevel:MSACLogLevelVerbose]
AppCenter.logLevel = .verbose
Günlüklerde ( BİlGİ günlüğü düzeyinde) "App Center SDK başarıyla yapılandırıldı" ifadesinin göründüğünden emin olun, ardından HTTPS istek günlüklerini görüp görmediğinizi denetleyin.
Cihazınızın çevrimiçi olduğundan emin olun.
Bazen günlüklerin portalda görünmesi birkaç dakika sürebilir. Durum buysa bir süre bekleyin.
App Center arka ucuna verilerinizin alınıp alınmadığını denetlemek için Analiz hizmetinin Günlük akışı bölümüne gidin. Olaylarınız gönderildikten sonra görünmelidir.
Kilitlenmeler portalda gösterilmiyor
SDK modüllerini doğru bir şekilde tümleştirdiğinizden emin olun.
Yöntem çağrısıyla birlikte doğru uygulama gizli dizisinin eklendiğinden
start:withServices:
emin olun. Uygulamayı portalda açıp Başlarken sayfasına giderek kodu tam olarakstart:withServices:
kopyalayabilirsiniz.App Center Kilitlenmeleri , kilitlenme günlüğünü yalnızca uygulama yeniden başlatıldıktan sonra iletir. Ayrıca, hata ayıklayıcıya bağlıysanız SDK hiçbir kilitlenme günlüğünü iletmez. Uygulamayı kilitlediğinizde hata ayıklayıcının bağlı olmadığından emin olun.
Arka uçtan gönderilen günlükleri görmek istiyorsanız, uygulamanızda günlük düzeyini Ayrıntılı olarak değiştirin. Ardından SDK, konsoldaki günlükleri yazdırır. SDK başlamadan önce aşağıdaki çağrıyı ekleyin:
[MSACAppCenter setLogLevel:MSACLogLevelVerbose]
AppCenter.logLevel = .verbose
Günlüklerde ( BİlGİ günlüğü düzeyinde) "App Center SDK başarıyla yapılandırıldı" ifadesinin göründüğünden emin olun, ardından HTTPS istek günlüklerini görüp görmediğinizi denetleyin.
Kilitlenme Raporlama işlevselliği sağlayan başka kitaplıklar kullanmayın. Uygulamanızda yalnızca bir kilitlenme raporlama SDK'sı tümleşik olabilir.
Cihazınızın çevrimiçi olduğundan emin olun.
Bazen günlüklerin portalda görünmesi birkaç dakika sürebilir. Durum buysa bir süre bekleyin.
SDK'nın bir sonraki uygulama başlangıcında kilitlenme algılayıp algılamadiğini denetleyin. Uygulamanın son oturumda kilitlenip kilitlenmediğini ve bir uyarı gösterip göstermediğini denetlemek için API'yi çağırabilirsiniz. Alternatif olarak, kilitlenme
didSucceedSendingErrorReport
geri çağırmasını sunucuya başarıyla gönderilip gönderilmediğini görmek için genişletebilirsiniz.App Center arka ucuna kilitlenme olup olmadığını denetlemek için Analiz hizmetinin Günlük akışı bölümüne gidin. Kilitlenmeleriniz gönderildikten sonra orada görünmelidir.
Kullanıcılardan güncelleştirme isteyen Uyarı dizeleri değil, yalnızca bunların anahtarlarını içerir
Bu, öğesinin AppCenterDistributeResources.bundle
projeye eklenmediğini gösterir. Dosyayı Xcode projenize bıraktığınızdan ve uygulama hedefinizin Copy Bundle Resources
derleme aşamasında göründüğünden emin olun. Dosyayı sürükleyip bırakma yoluyla eklediyseniz orada görünmelidir. Xcode dosyayı sizin için otomatik olarak yapar. Derleme aşamasında dosya eksikse, uygulamanızın paketine derlenecek şekilde ekleyin.
Cocoapods kullanıyorsanız, kaynakları otomatik olarak halleder. Pod'un yeniden yüklenmesini deneyin.
Konsolunda veritabanının açılamadığını belirten iletiler görürsünüz
iOS SDK'sının 0.11.0 sürümünden itibaren App Center, günlükleri arka uçtan göndermeden önce kalıcı hale getirmek için SQLite kullanır. Uygulamanızı işletim sistemi tarafından sağlanan kitaplığı kullanmak yerine kendi SQLite kitaplığınızla paketlemek istiyorsanız konsolda [AppCenter] ERROR: -[MSACDBStorage executeSelectionQuery:]/147 Failed to open database
bunun gibi hatalar görebilirsiniz ve arka uçta herhangi bir analiz veya kilitlenme bilgisi görmezsiniz. SDK'yi 0.13.0 veya sonraki bir sürüme güncelleştirin.
Dağıtma ve uygulama içi güncelleştirmeler otomatik kullanıcı arabirimi testlerimi engelliyor
Uygulama içi güncelleştirmeler etkinleştirilirse otomatik kullanıcı arabirimi testlerinizi engeller. Güncelleştirme işlemi App Center arka ucuna karşı kimlik doğrulamayı dener. Ui test hedefiniz için App Center Distribute'ı etkinleştirmemenizi öneririz.
SDK'nın neden "statik kitaplık" olarak dağıtıldığı
App Center SDK'sının birincil tasarım hedefleri, App Center'ı kullanan uygulama üzerinde en az etkiye sahip olmak ve modüler bir SDK'ya sahip olmaktır. Bu, SDK'nın birkaç dinamik bağlantılı paylaşılan kitaplık olarak dağıtılmasıyla sonuçlanır.
Geçmişte iOS dinamik bağlantılı paylaşılan kitaplıkları desteklemedi, ancak Landon Fuller'ın bu blog gönderisinde açıklandığı gibi iOS 8'e eklendi.
Ancak App Center, "fat" sahte bir çerçeveye sarmalanmış statik bağlantılı paylaşılan kitaplık olarak dağıtılır. Bu, SDK'nın daha iyi performans için başlatma zamanında değil derleme zamanında bağlandığı anlamına gelir. Birden çok dinamik bağlantılı paylaşılan kitaplığın yüklenmesi zaman alır.
Apple, bir WWDC oturumunda uygulama başlatma işleminin 400 ms'den fazla sürmemesi için iyileştirmeyi önerir. Bu hedefe ulaşmak için dinamik paylaşılan kitaplıklar yerine statik paylaşılan kitaplıklar önerir. iOS için App Center SDK'sının statik olarak bağlantılı paylaşılan kitaplık olarak dağıtılması, Apple'ın önerisini takip ederek en iyi performansı ve SDK'nın bulunduğu uygulamayı en düşük düzeyde etkilemesini sağlar.
Statik bağlantılı paylaşılan kitaplıklar ve dinamik bağlantılı paylaşılan kitaplıklar hakkında daha fazla bilgi edinmek için Apple'ın konu hakkındaki genel belgelerini öneririz.
SDK ikili dosyaları neden bu kadar büyük? Uygulamamın boyutuyla ilgileniyorum
AppCenter ikili dosyaları, tüm iPhone mimarileri ve iPhone simülatörü için dilimler içeren "yağ" çerçeveler olarak dağıtılır. AppCenter.framework'ün indirilmesi 10,5 MB olmasının nedeni budur.
SDK ikili dosyalarının derlenmiş boyutu, Xcode'da uygulamanıza eklediğinizden çok daha .framework
küçük olacaktır. Ayrıca yayın derlemelerinin de hata ayıklama derlemelerinden daha küçük olacağını unutmayın.
Bunu göstermek için Xcode 9.2 ile boş bir Objective-C uygulaması oluşturduk, App Center ikili dosyalarını uygulamaya ekledik ve iOS 11.3 çalıştıran bir iPhone 7'ye dağıtılmış sürüm derlemeleri ekledik.
Testleri Bitcode etkinleştirilmeden çalıştırdık ve App Thinning kullanmadık. Uygulamanızın ikili boyutunu daha da küçültmek için bu teknikleri kullanabilirsiniz.
Aşağıdaki sayılar değişiklik gösterebilir ve derleme ayarlarınıza bağlı olabilir, bu nedenle bunları kaba bir kılavuz olarak düşünün. Öte yandan Uygulama Merkezi SDK'sını uygulamanıza eklemek, uygulama ikili dosyanızın boyutunu çok az etkiler.
Kullanılan App Center modülleri | Dışarı aktarılan IPA boyutu | Yükleme boyutu |
---|---|---|
Hiçbiri (boş uygulama) | 24 KB | 132 KB |
App Center Analizi | 120 KB | 377 KB |
App Center Kilitlenmesi | 239 KB | 705 KB |
App Center Dağıtımı | 163 KB | 528 KB |
Tüm App Center modülleri | 314 KB | 930 KB |
App Center gizli dizi değerini koruma
app_secret
uygulamanızın tanımlayıcısıdır; trafiğin hangi uygulamaya uygulandığını bilmeniz gerekir ve mevcut verileri almak veya düzenlemek için kullanılamaz. Uygulamanız app_secret
kullanıma sunulursa en büyük risk uygulamanıza hatalı veri göndermektir, ancak verilerin güvenliği üzerinde bir etkisi olmaz.
Hassas verileri almak için istemci tarafında oluşturulan bir uygulama/kullanıcı belirteci sağlamanız gerekir. İstemci tarafında verileri tamamen güvenli hale getirmenin bir yolu yoktur.
Uygulama gizli dizisini kodunuza eklemek için bir ortam değişkeni kullanarak uygulamanızın güvenliğini geliştirebilirsiniz. Bu şekilde gizli dizi kodunuzda görünmez.