iOS 10: “[Uygulama] gerçek ön sipariş işleyicisindeysek, CA kısıtlaması nedeniyle yeni çit ekleyemeyiz”


389

Uygulamamı çalıştırırken bazen bu mesajı Xcode 8b3 günlüklerinde alıyorum, her şey işe yarıyor gibi görünüyor, ancak bunun nereden geldiğini bilmek istiyorum. Google hiç yardımcı olmadı.


2
UINavigationController delege yöntemini mi arıyorsunuz? Fun navigationController (navigationController: UINavigationController, willShowViewController viewController: UIViewController, animasyonlu: Bool) {}?
Norman G

2
willShowViewController asla çağrılmaz, hayır ...
swalkner

Ben de aynısını alıyorum. SpriteKit ve SceneKit kullanıyorum ve bunlardan şüpheleniyorum!
Howard Lovatt

3
Hata raporu veren var mı? Üzereyim.
David DelMonte

1
Lütfen bu cevaba bir göz atın. stackoverflow.com/a/39997761/6602495
Sneha

Yanıtlar:


285

Xcode'unuzda:

  • Durdur düğmesinin hemen yanındaki etkin şema adınızı tıklayın
  • Şemayı Düzenle ... seçeneğini tıklayın.
  • Çalıştır (Hata Ayıkla) bölümünde Bağımsız Değişkenler sekmesini seçin
  • Ortam Değişkenleri'nde +
  • değişken ekle: OS_ACTIVITY_MODE = devre dışı bırak

ekran görüntüsü


4
Ek bilgi için teşekkür ederim
amergin

26
Konsolda herhangi bir NSLog çıktısı almadığımı ve düzeltmek için bunu tekrar kaldırdığımı unutmayın. Bu daha çok elmadaki keçiler tarafından maruz bıraktığımız 'yüksek sınıf' programlamanın bir parçası.
amergin

37
Değer için ne zaman bir yön değişikliği yapıldığında bu mesajı alıyorum ve ben OS_ACTIVITY_MODE ortam değişkeni devre dışı bıraktı.
user2698617

5
Not: Bunu eklediğinizde, NSLogs'u konsolda da göremezsiniz.
niravdesai21

4
Bu bir yangın alarmını kapatmak gibi bir şey değil mi?
ScottyBlades

191

+[UIWindow _synchronizeDrawingAcrossProcessesOverPort:withPreCommitHandler:]Os_log API üzerinden gelir . Kullandığınız başka bir bileşene / çerçeveye bağlı değildir (yalnızca UIKit'ten) - arayüz yönünü değiştirme konusunda temiz tekli görünüm uygulama projesinde çoğalır.

Bu yöntem 2 bölümden oluşur:

  1. işlenmiş listesine önişlemci işleyicisinin eklenmesi;
  2. mevcut sonlu durum makine durumuna bağlı bazı işler yapın.

İkinci bölüm başarısız olduğunda (yasaklanmış geçişe benziyor), hata günlüğüne yukarıdaki mesajı yazdırır. Ancak, bu sorunun ölümcül olmadığını düşünüyorum: Bu yöntemde hata ayıklama çökmesine neden olacak 2 ek iddia vaka vardır.

Radar yapabileceğimiz en iyi şey gibi görünüyor.


1
Lütfen, bu özel yöntem adını ve yapısını elde etmek için hata ayıklamak için kullandığınız araçları ayrıntılandırabilir misiniz?
Oleksandr Karaberov

9
@AlexanderKaraberov, ikili çerçeve içindeki uyarı metnini ve bu metne özel yöntemden referansları bulmak için Hopper Disassembler'ı kullanabilirsiniz.
k06a

Klavye içeri girdiğinde de bunu alıyorum ve görüşlerini yeniden boyutlandırarak yanıt vermek için abone olan bir denetleyicim var.
yo.ian.g

82

Aşağıdaki environment variablesşema için aşağıdakileri koymayı deneyinrun(debug)

OS_ACTIVITY_MODE = disable

Donanım-> döndür menü öğelerini kullanarak iPhone 7'yi döndürürken simülatörde bunu aldım. Bu ortam değişkeni sahte mesajı ortadan kaldırdı.
George D Girton

1
Aşağıdaki @Foo'nun yanıtı, nasıl yapılır ayrıntılarını içerdiğinden faydalıdır.
Kevin Owens

1
Ayrıca kısıtlama uyarı günlüğünü de yazdırmaz
chirag shah

36
OP mesajın nereden geldiğini sordu. Sadece nasıl susturulacağını söylemek doğru cevap değil.
iCaramba

6
"IOS_ACTIVITY_MODE = devre dışı" yanıtı TÜM günlük kaydını kapatır! Günlüğü görmek istemiyorsanız günlük görünümünü kapatmanız yeterlidir. Gerçekten saçma cevap, çok oyu var şaşırtıcı! Gerçek mesajı ele almak için hiçbir şey yapmaz. Temel verileri yoğun olarak kullanan uygulamalarımız iyi çalışıyor, bu mesajlar ve diğerleri son Xcode güncellemelerinden birinin ardından görünmeye başladı. Apple'ın bu tür sorunları çözememesi üzücü.
John

13

Bu şekilde sessize alabiliriz (cihaz ve simülatörün farklı değerlere ihtiyacı vardır):

Adı OS_ACTIVITY_MODEve Değeri ekleyin ${DEBUG_ACTIVITY_MODE}ve kontrol edin (Ürün -> Şema -> Şemayı Düzenle -> Çalıştır -> Bağımsız Değişkenler -> Ortam'da).

resim açıklamasını buraya girin

Kullanıcı Tanımlı Ayarı Ekle DEBUG_ACTIVITY_MODEeklemek sonra, Any iOS Simulator SDKiçin Debugve 's değerini disable(Projesinde -> Yapı ayarları -> + -> Kullanıcı Tanımlı Ayarı)

resim açıklamasını buraya girin


Benim için çalışmadı: Yukarıda da belirtildiği gibi hata ayıklama etkinliği modunu devre dışı bırakmış olmama rağmen bunu konsolda da görüyorum.
Johan

-1

Düzeltmek için uygulamayı Simulator'dan sildim.

Önce temiz de koştum .

Oryantasyonla ilgili hiçbir şeyin onu tetiklediğini düşünmüyorum. Bu belirti başlamadan önce değişen en büyük şey, Swift çerçevesinin NSLogana iş parçacığı yerine işçi iş parçacıklarını çağırmaya başlamasıdır .


1
Simülatörde döndürmeden çalıştırdığımda ilk önce temiz bir işe yaradı, ama sonra bir döndürme komutuyla tekrar test ettiğimde, aynı hatayı bildirdi.
cheznead

Pan hareketlerini kullanıyorum ve yalnızca yönü değiştirirken bu hatayı alıyorum.
Jeremy Andrews

-8
OS_ACTIVITY_MODE = disable

Bu aynı zamanda gerçek cihazlarda hata ayıklama yeteneğini de devre dışı bırakır (bundan sonra gerçek cihazlardan konsol çıkışı olmaz).


6
Daha önceki bir cevabı kopyaladınız (daha az ayrıntıyla)
Ashley Mills

2
aslında TL; DR yardımcı olur.
Juan Je García
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.