Robiłem dzisiaj rozszerzenie, które pobiera artykuły z kanału i wyświetla najnowsze. Cała operacja sprawdziła się na iOS 8, nadal działała na iOS 8.1, a potem pojawił się iOS 8.1.2 i zaczęliśmy się skarżyć na to, że dzisiejsze rozszerzenie nie działa. Próbowałem debugowanie na iOS 8.1.2 urządzeń, a przed rozszerzeniem nawet uruchomić, to wywala z tego błędu:Dzisiejsze awarie rozszerzeń przed uruchomieniem na iOS 8.1.2
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** setObjectForKey: object cannot be nil (key: <__NSConcreteUUID 0x174027280> 5AFB07AB-5DCD-46FE-8D07-44DE0F3789F2)'
przeczytałem ten post o częstych błędów dzieje przy opracowywaniu rozszerzenie dzisiaj: http://www.atomicbird.com/blog/ios-app-extension-tip
w swoim stanowisku, Tom Harrington mówi:
w iOS 8 (i innych nowszych wersjach), umożliwiając w ustawieniach kompilacji modułów Xcode oznacza, że nie trzeba jawnie wymienić wszystkie ramy, których chcesz używać. Zostaną znalezione automatycznie.
Ale tak nie jest w przypadku NotificationCenter.framework, którego używają dzisiejsze rozszerzenia. Jeśli usuniesz to z ustawień kompilacji, nie otrzymasz żadnych ostrzeżeń lub błędów kompilacji. Ale gdy spróbujesz załadować rozszerzenie, dostaniesz wyjątek od libextension.dylib, a twoje rozszerzenie się nie załaduje. Komunikat wyjątek nie jest pouczające:
2014-08-16 12: 06: 53,793 TodayTestExtension [41313: 6111763] * Zakończenie aplikacji ze względu nieprzechwyconego wyjątku 'NSInvalidArgumentException' przyczyny: „* setObjectForKey: obiekt nie może be nil (klucz: < __NSConcreteUUID 0x7fd729422390> ED3B42F8-66CD-4CB0-BCD5-F3DBA6F34DB5) ' Jeśli robisz dzisiaj rozszerzenie, po prostu zostaw to środowisko w ustawieniach kompilacji. Nie powinno tam być, ale robi to.
Moje rozszerzenie zawiera NotificationCenter.framework w ustawieniach kompilacji, ale podejrzewam, że mój problem może być w pewien sposób podobny.
Ktoś zmierzył się z podobnym problemem? Każdy pomysł, jak go rozwiązać?
Wow, to zniechęca. Wygląda dokładnie tak samo, ale to jedyna rzecz, jaką wiem, która spowodowałaby ten problem. –
Czy te skargi od użytkowników "w terenie", czy od osób, które korzystają z testowych wersji Twojej aplikacji? Po pierwsze byłby to błąd 8.1.2 i nie byłoby zbyt wiele możliwości. W drugim może to być problem Xcode, który można naprawić. –