Hata: iOS9'da _handleNonLaunchSpecificActions


157

İOS 9'da aşağıdaki hatayı alıyorum:

    -[UIApplication_handleNonLaunchSpecificActions:
      forScene:
      withTransitionContext:
      completion:] unhandled action -> 
      <FBSSceneSnapshotAction: 0x150b2aef0> 
       {
            handler          = remote;
            info = <BSSettings: 0x15333f650> 
            {
                (1) = 5;
            };
        }

Başka biri bu hatayla karşılaştı mı yoksa etkileri mi var? Yanlış olan ne?


6
Hala iOS9 sonrası beta sürümlerinde. Sorunun ne olduğunu ve bunun etkilerini anlamak iyi olurdu.
Roddy

11
Uygulamam çalışırken iPhone'umu kilitlediğimde de aynı sorun yaşıyorum. iOS 9.0, XCode 7.0.
NKorotkov

5
Xcode 7 ile oluşturulan yepyeni bir projede de aynı sorun olduğu için Apple hatası gibi görünüyor.
Hongfei

12
Apple geliştirici forumlarında tartışılan herhangi bir şey var mı? Her türlü hatanın "Apple sizden istemiyorsanız neden bunu yapmak istesiniz?" Sorunları çözmek için çaresizliğin son durağıdır.
Roddy

11
Stackoverflow.com/questions/32658037/… adresine bakın - bu aynı sorunu tartışır.
iPhone Guy

Yanıtlar:


10

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 :

  1. Yöntem adını yönlendiren alt çizgi, yöntemin _handleNonLaunchSpecificActions:forScene:withTransitionContext:completionbildirildiği sınıfa özel / dahili olduğunu belirten bir kuraldır. ( Bu yoruma bakın .)

  2. Bunu tahmin etmek mantıklı iki harfli önek içinde FBSSceneSnapshotActionis 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 BSiçinde önek BSSettingsiç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 FBSceneImplbenim uygulama hakkında bir sürü bilgi olan denilen bir sınıf buldum :

Faliyet alani, sahne

Bir sonraki hangi özel yöntemin çağrıldığını bulabiliriz (program sayacında saklanır, kayıt 15).

Program sayıcı

FBSceneSnapshotActionGü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:

Aksiyon listesi

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.


Üzgünüm ama bu gerçekten bir cevap değil; Aşağıdaki yorumdan daha fazlası. Kod, Apple'ın dahili hatasıdır, bu söz konusu değildir. Tahminler gerçekten bir çözüm değildir ve sağlanan iOS8 açıklaması, yalnızca iOS9'da görünen hata ile ilgili değildir (bu iOS8'de gerçekleşmez).
Roddy

2
"Yanlış olanın" cevabı, SpringBoard içindeki bir şeyin anlık görüntü eylemi gerçekleştirmediğidir. Günlüğe kaydetme iletisi böyle söylüyor. Apple'ın dışında size söyleyebilecek çok az şey var.
Moshe

Bu günlük iletisinin iOS 8'de görünmemesi aslında gerçekten alakalı değil. Radarla doldurulması gereken bir kaçak günlük mesajı.
Moshe

Bu sabah birisinin sorumu güncellediğini ve aslında sorduğum şey olmadığını fark ettim, bu yüzden biraz kopukluk var. Bir sorunun başkaları tarafından güncellenmesinin mümkün olduğunu bile bilmiyordum.
Roddy

Orijinal sorunuzu cevaplamak için: Lütfen bir radar göndermekten başka bir anlamı yoktur.
Moshe
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.