Kodunuzda yanlış bir şey yok. Bu, Apple'ın içindeki bir günlük iletisidir ve bu konuda bir radar göndermelisiniz.
Bunun muhtemelen Apple'ın kodu olduğunu gösteren iki ipucu var :
Yöntem adını yönlendiren alt çizgi, yöntemin _handleNonLaunchSpecificActions:forScene:withTransitionContext:completion
bildirildiği sınıfa özel / dahili olduğunu belirten bir kuraldır. ( Bu yoruma bakın .)
Bunu tahmin etmek mantıklı iki harfli önek içinde FBSSceneSnapshotAction
is steno "in Rene Ritchie göre FrontBoard için iOS 9 istek listesi: Misafir Modu" uygulamalar başlatarak ilgili yazılımın bütün aile bir parçasıdır:
İOS 8 ile Apple, sistem yöneticisi SpringBoard'ı daha küçük ve daha odaklanmış birkaç bileşene yeniden düzenledi. Arka plan görevlerini yürütmek için zaten eğilmiş olan BackBoard'a ek olarak, ön plan görevleri için Frontboard eklediler. Ayrıca Kilit ekranını güvenli, şifrelenmiş koşullarda kullanmak için PreBoard eklediler. [...]
Ben hiçbir fikrim yok BS
içinde önek BSSettings
için, ama bu günlük mesajın bir analiz senin istemen şey olmadığını belirtmek istiyorum ve günlük mesaj çoğaltmak adımlarla bir radar bulunmalısınız.
Bir yığın izlemeyi denemek ve almak istiyorsanız, buraya bağlı kategoriyi uygulayabilirsiniz . Bazıları özel API'yi geçersiz kılmanın kötü bir fikir olduğunu iddia eder, ancak bu durumda yığın izini almak için geçici bir enjeksiyon çok zararlı olamaz.
DÜZENLE:
Ancak, hala bu eylemin ne olduğunu bilmek istiyoruz. Bu yüzden bir kesme noktası koymak -[UIApplication _handleNonLaunchSpecificActions:forScene:withTransitionContext:completion]
ve kayıt değerleri yazdırmaya başladı ve FBSceneImpl
benim uygulama hakkında bir sürü bilgi olan denilen bir sınıf buldum :
Bir sonraki hangi özel yöntemin çağrıldığını bulabiliriz (program sayacında saklanır, kayıt 15).
FBSceneSnapshotAction
Günlüğünde başvurulan işlenmemiş bulmayı denedim , ancak zar. Sonra UIApplication alt sınıfta ve overrode _handleNonLaunchSpecificActions:forScene:withTransitionContext:completion
. Şimdi doğrudan eyleme geçebildim, ama yine de ne olduğunu bilmiyoruz.
Sonra tekrar FBSceneSnapshotAction'a baktım. Görünen bir süper sınıf var 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, biri de aygıtlardaki program sayacından), bu eylemlerin, eylemleri sistemin etrafından geçirmek için kaputun 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, doğru bir şekilde ele alınmayan bir eylemin olması ve sistemin bunu belirtmesidir. Görünüşe göre onu görmememiz gerekiyordu.