Kodunuzda yanlış bir şey yok. Bu, Apple için dahili bir kayıt mesajıdır ve bununla ilgili bir radar oluşturmalısınız.
Bunun muhtemelen Apple'ın kodu olduğunu gösteren iki ipucu var :
Yöntem adının başındaki alt çizgi, yöntemin _handleNonLaunchSpecificActions:forScene:withTransitionContext:completion
bildirildiği sınıfa özel / dahili olduğunu gösteren bir kuraldır. ( Bu yoruma bakın .)
" FBSSceneSnapshotAction
İOS 9 dilek listesi: Konuk Modu" ndaki Rene Ritchie'ye göre, uygulamaların başlatılmasıyla ilgili tüm yazılım ailesinin bir parçası olan FrontBoard için iki harfli ön ekin kısaltılmış olduğunu tahmin etmek mantıklıdır :
Apple, iOS 8 ile sistem yöneticisi SpringBoard'ı daha küçük, daha odaklanmış birkaç bileşene dönüştürdü. Arka plan görevlerini yerine getirmek için zaten kapatılmış olan BackBoard'a ek olarak, ön plan görevleri için Ön Panel eklediler. Ayrıca Kilit ekranını güvenli, şifreli koşullar altında işlemek için PreBoard eklediler. [...]
Ben hiçbir fikrim yok BS
içinde önek BSSettings
için, ancak
BS
kısaltmasıdır BackBoard Settings
ve bu günlük mesajının analizi, sizin yaptığınız bir şey olmadığını gösterir ve günlük mesajını yeniden oluşturma adımlarını içeren bir radar açmanız gerekir.
Bir yığın izlemeyi denemek ve yakalamak istiyorsanız, buraya bağlı kategoriyi uygulayabilirsiniz . Bazıları, özel API'yi geçersiz kılmanın kötü bir fikir olduğunu iddia edebilir, ancak bu durumda bir yığın izini almak için geçici bir enjeksiyon çok zararlı olamaz.
DÜZENLE:
Ama yine de bu eylemin ne olduğunu bilmek istiyoruz. Bu yüzden bir kesme noktası koydum -[UIApplication _handleNonLaunchSpecificActions:forScene:withTransitionContext:completion]
ve yazmaç değerlerini yazdırmaya başladım ve FBSceneImpl
uygulamam hakkında bir sürü bilgi içeren bir sınıf buldum :
Sonra hangi özel yöntemin çağrıldığını bulabiliriz ( program sayacında, komut işaretçisinde, kayıt 15'te saklanır )
FBSceneSnapshotAction
Günlükte atıfta bulunulan ele alınmayanları bulmaya çalıştım , ancak zar yok. Ardından, UIApplication'ın alt sınıfını oluşturdum ve üzerine yazdım _handleNonLaunchSpecificActions:forScene:withTransitionContext:completion
. Şimdi doğrudan eyleme geçebildim, ancak yine de ne olduğunu bilmiyoruz.
Ardından, FBSceneSnapshotAction'a tekrar baktım. Adında bir süper sınıf olduğu ortaya çıktı BSAction
.
Sonra RuntimeBrowser'a benzer bir araç yazdım ve BSAction'ın tüm alt sınıflarına baktım. Görünüşe göre bunların bir listesi var:
Sahip olduğumuz iki yöntem adı (biri günlükten ve diğeri cihazlardaki program sayacından), bu eylemlerin sistem çevresinde eylemleri geçirmek için başlık altında kullanıldığını gösterir.
Bazı eylemler muhtemelen uygulama temsilcisinin geri aramalarına gönderilirken diğerleri dahili olarak ele alınır.
Burada olan şey, doğru şekilde ele alınmayan bir eylem olması ve sistemin bunu fark etmesidir. Görünüşe göre onu görmememiz gerekiyordu.