Brauche kurzen App-Test auf iOS 10 (Device)

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Brauche kurzen App-Test auf iOS 10 (Device)

    Hallo zusammen!

    Ich bräuchte wieder einmal Eure Hilfe!

    Vor wenigen Tagen habe ich ein Update der Stundenplan-App "SchoolRoom" veröffentlicht ... und leider gepatzt: Das Deployment-Target ist iOS 10, aber ich habe kein Test-Gerät mit dieser Version mehr. Soweit es geht, habe ich mit dem Simulator getestet, aber manche Dinge gehen dort nicht, z. B. Mailversand. Ein Benutzer hat mich (zu Recht) auf ein Problem hingewiesen, das ich gestern behoben und - mittels Expedited Review - innerhalb von 4h in den Store bekommen habe. Nun meldet er wieder Abstürze bei den folgenden Aktionen:
    • Aufruf des "Teilen"-Menüs im Demo-Stundenplan und Export (erzeugt eine Mail mit Export-Datei und PDF)
    • Aufruf des "Teilen"-Menüs im Demo-Stundenplan und "Open in" in einer anderen App
    • Aufruf des "Teilen"-Menüs im Demo-Stundenplan und AirDrop auf ein anderes Gerät (auch wenn dort kein SchoolRoom installiert ist)
    Hat eine(r) von Euch von physikalische Testgeräte unter iOS 10 und wäre bereit, die (kostenlose) App zu laden und kurz die o. g. Punkte zu testen? Ergebnisse oder auch Rückfragen zum Vorgehen gerne per PM oder hier im Thread.

    Wenn diese Punkt bei Euch funktionieren, handelt es sich um ein "Einzelschicksal" (bei bisher 14.000 geladenen Updates), zumal die betroffenen Geräte jailbroken sind. Falls Ihr allerdings auch Probleme habt, muss ich mir überlegen, wie ich weiter vorgehe: Entweder ein Testgerät mit iOS 10 bestücken (geht das überhaupt noch?) oder die 8% im Regen stehen lassen und das Deployment-Target hochsetzen...

    Grüße, Mattes
    Diese Seite bleibt aus technischen Gründen unbedruckt.
  • Okay, so wie es aussieht, wird iOS 10 von Apple nicht mehr signiert. Somit gibt es m. W. keinen Weg, es ohne Jailbreak auf ein physisches Gerät zu installieren. Ich kann also mein Testgerät nicht auf iOS 10 downgraden und somit - meiner Meinung nach - iOS 10 auch nicht mehr guten Gewissens unterstützen.

    Wie seht Ihr das?

    Gruß, Mattes

    P.S.: Tester wären dennoch rein zum Verifizieren des Problems willkommen... :D
    Diese Seite bleibt aus technischen Gründen unbedruckt.
  • MyMattes schrieb:

    Aufruf des "Teilen"-Menüs im Demo-Stundenplan und Export (erzeugt eine Mail mit Export-Datei und PDF)
    Export wird mir gar nicht angeboten
    Wenn ich Mail auswähle geht der ActionSheet zu und es passiert gar nichts (wahrscheinlich weil ich kein Mail Account angelegt habe?)

    MyMattes schrieb:

    Aufruf des "Teilen"-Menüs im Demo-Stundenplan und "Open in" in einer anderen App
    Öffnen mit... ActionSheet geht zu und die App ist geschlossen

    MyMattes schrieb:

    Aufruf des "Teilen"-Menüs im Demo-Stundenplan und AirDrop auf ein anderes Gerät (auch wenn dort kein SchoolRoom installiert ist)
    Airdrop, touch auf ein anderes meiner Geräte (schoolroom ist dort nicht installiert)
    ActionSheet geht gar nicht erst zu, die App ist gleich weg
    Ich weiß nicht immer wovon ich rede aber ich weiß das ich Recht habe. :saint:
  • @nussratte: Danke für die Tests, so etwas hatte ich befürchtet.

    Angesichts der beschriebenen Situation - iOS 10 ohne Jailbreak auf kein (Test-) Gerät mehr installierbar - werde ich den Support für diese Version wohl einstellen müssen. Sieht eine(r) von Euch eine sinnvolle Alternative?

    Mattes
    Diese Seite bleibt aus technischen Gründen unbedruckt.
  • aktuell liegt das ding hier bei mir nur rum

    wenn du die Versandkosten übernimmst, kann ich dir das zu schicken du kannst das durchtesten eine Update bringen und deinen user mitteilen das es das letzte Update war das iOS10 unterstützt
    dann sind vielleicht weniger verärgert

    und dann schickst du es wieder zurück
    Ich weiß nicht immer wovon ich rede aber ich weiß das ich Recht habe. :saint:
  • Ich habe die App gerade mal auf einem 6s mit iOS 10.3.3 getestet. Nach Auswahl von "Export" beendet sich die App sofort.

    Der Crash Log gibt leider wenig Infos her:

    Quellcode

    1. Last Exception Backtrace:
    2. 0 CoreFoundation 0x191a82fe0 __exceptionPreprocess + 124
    3. 1 libobjc.A.dylib 0x1904e4538 objc_exception_throw + 55
    4. 2 CoreFoundation 0x1919699b4 -[__NSPlaceholderDictionary initWithObjects:forKeys:count:] + 363
    5. 3 CoreFoundation 0x191969824 +[NSDictionary dictionaryWithObjects:forKeys:count:] + 63
    6. 4 SchoolRoom 0x1000f0ef0 0x1000c4000 + 184048
    7. 5 SchoolRoom 0x1000ce684 0x1000c4000 + 42628
    8. 6 UIKit 0x197dc9af0 -[UIActivityViewController _executeActivity] + 675
    9. 7 UIKit 0x197dc95a4 -[UIActivityViewController _performActivity:] + 1551
    10. 8 UIKit 0x1980e97b8 -[_UIActivityViewControllerContentController+ 5523384 (UIActivityGroupViewControllerProtocols) activityGroupViewController:didSelectActivity:] + 211
    11. 9 UIKit 0x197dc8f6c -[UIActivityGroupViewController collectionView:didSelectItemAtIndexPath:] + 399
    12. 10 UIKit 0x197dc8b80 -[UICollectionView _selectItemAtIndexPath:animated:scrollPosition:notifyDelegate:] + 595
    13. 11 UIKit 0x197dc8514 -[UICollectionView touchesEnded:withEvent:] + 583
    14. 12 UIKit 0x197d44c60 forwardTouchMethod + 335
    15. 13 UIKit 0x197d8f1e4 -[UIResponder touchesEnded:withEvent:] + 59
    16. 14 UIKit 0x197d44c60 forwardTouchMethod + 335
    17. 15 UIKit 0x197d8f1e4 -[UIResponder touchesEnded:withEvent:] + 59
    18. 16 UIKit 0x197be8fd4 -[UIWindow _sendTouchesForEvent:] + 2479
    19. 17 UIKit 0x197be436c -[UIWindow sendEvent:] + 3191
    20. 18 UIKit 0x197bb4f80 -[UIApplication sendEvent:] + 339
    21. 19 UIKit 0x1983aea20 __dispatchPreprocessedEventFromEventQueue + 2399
    22. 20 UIKit 0x1983a917c __handleEventQueue + 4267
    23. 21 UIKit 0x1983a95a8 __handleHIDEventFetcherDrain + 147
    24. 22 CoreFoundation 0x191a3142c __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 23
    25. 23 CoreFoundation 0x191a30d9c __CFRunLoopDoSources0 + 539
    26. 24 CoreFoundation 0x191a2e9a8 __CFRunLoopRun + 743
    27. 25 CoreFoundation 0x19195eda4 CFRunLoopRunSpecific + 423
    28. 26 GraphicsServices 0x1933c9074 GSEventRunModal + 99
    29. 27 UIKit 0x197c19c9c UIApplicationMain + 207
    30. 28 SchoolRoom 0x1000f04a4 0x1000c4000 + 181412
    31. 29 libdyld.dylib 0x19096d59c start + 3
    32. Thread 0 name: Dispatch queue: com.apple.main-thread
    33. Thread 0 Crashed:
    34. 0 libsystem_kernel.dylib 0x0000000190a7d014 __pthread_kill + 8
    35. 1 libsystem_pthread.dylib 0x0000000190b47264 pthread_kill + 112
    36. 2 libsystem_c.dylib 0x00000001909f19c4 abort + 140
    37. 3 libc++abi.dylib 0x00000001904bd1b0 __cxa_bad_cast + 0
    38. 4 libc++abi.dylib 0x00000001904d6c04 default_unexpected_handler+ 109572 () + 0
    39. 5 libobjc.A.dylib 0x00000001904e4820 _objc_terminate+ 34848 () + 124
    40. 6 libc++abi.dylib 0x00000001904d35d4 std::__terminate(void (*)+ 95700 ()) + 16
    41. 7 libc++abi.dylib 0x00000001904d31a8 __cxa_rethrow + 144
    42. 8 libobjc.A.dylib 0x00000001904e46f8 objc_exception_rethrow + 44
    43. 9 CoreFoundation 0x000000019195ee10 CFRunLoopRunSpecific + 532
    44. 10 GraphicsServices 0x00000001933c9074 GSEventRunModal + 100
    45. 11 UIKit 0x0000000197c19c9c UIApplicationMain + 208
    46. 12 SchoolRoom 0x00000001000f04a4 0x1000c4000 + 181412
    47. 13 libdyld.dylib 0x000000019096d59c start + 4
    Alles anzeigen
    Gibt es in App Store Connect keine Crash Logs mehr? Habe da schon lange nicht mehr reingeschaut.

    Hast Du evtl. die Möglichkeit, mir einen Ad Hoc Build mit Debug Symbols zur Verfügung zu stellen? Evtl. gibt das Crash Log dann mehr Infos her.

    Ich kann Dir auch mal den Crash Log senden, evtl. kann Xcode den mit passenden Debug Symbols ergänzen.
  • MCDan schrieb:



    Ich kann Dir auch mal den Crash Log senden, evtl. kann Xcode den mit passenden Debug Symbols ergänzen.
    Gerne, vielleicht komme ich damit weiter. Über iTC habe ich für die aktuellen Releases keine Crash-Logs ... Angesichts der kurzen Zeit, der Einschränkung auf iOS 10 und der Notwendigkeit, deren Versand zu erlauben, wundert mich das aber nicht. Der Melder des Fehlers hat mir einen Crash-Report zugeschickt, der mich aber nicht wirklich weiterbringt:

    Quellcode

    1. Last Exception Backtrace:
    2. 0 CoreFoundation 0x183a011b8 0x1838d1000 + 0x1301b8 // __exceptionPreprocess + 0x7c
    3. 1 libobjc.A.dylib 0x18243855c 0x182430000 + 0x855c // objc_exception_throw + 0x38
    4. 2 CoreFoundation 0x1838e4eac 0x1838d1000 + 0x13eac // -[__NSPlaceholderDictionary initWithObjects:forKeys:count:] + 0x16c
    5. 3 CoreFoundation 0x1838e4d1c 0x1838d1000 + 0x13d1c // +[NSDictionary dictionaryWithObjects:forKeys:count:] + 0x40
    6. 4 SchoolRoom (*) 0x100078ef0 0x10004c000 + 0x2cef0
    7. 5 SchoolRoom (*) 0x100056684 0x10004c000 + 0xa684
    8. 6 UIKit 0x189acff10 0x1898a7000 + 0x228f10 // -[UIActivityViewController _executeActivity] + 0x2dc
    9. 7 UIKit 0x189acf994 0x1898a7000 + 0x228994 // -[UIActivityViewController _performActivity:] + 0x610
    10. 8 GAXClient 0x101bb8f40 0x101bb4000 + 0x4f40 // -[GAXUIActivityViewControllerOverride _performActivity:] + 0x8c
    11. 9 UIKit 0x189de6b84 0x1898a7000 + 0x53fb84 // -[_UIActivityViewControllerContentController(UIActivityGroupViewControllerProtocols) activityGroupViewController:didSelectActivity:] + 0xd4
    12. 10 UIKit 0x189acf35c 0x1898a7000 + 0x22835c // -[UIActivityGroupViewController collectionView:didSelectItemAtIndexPath:] + 0x190
    13. 11 UIKit 0x189acef70 0x1898a7000 + 0x227f70 // -[UICollectionView _selectItemAtIndexPath:animated:scrollPosition:notifyDelegate:] + 0x254
    14. 12 UIKit 0x189ace900 0x1898a7000 + 0x227900 // -[UICollectionView touchesEnded:withEvent:] + 0x24c
    15. 13 UIKit 0x189a4a2d8 0x1898a7000 + 0x1a32d8 // forwardTouchMethod + 0x150
    16. 14 UIKit 0x189a94900 0x1898a7000 + 0x1ed900 // -[UIResponder touchesEnded:withEvent:] + 0x3c
    17. 15 UIKit 0x189a4a2d8 0x1898a7000 + 0x1a32d8 // forwardTouchMethod + 0x150
    18. 16 UIKit 0x189a94900 0x1898a7000 + 0x1ed900 // -[UIResponder touchesEnded:withEvent:] + 0x3c
    19. 17 UIKit 0x1898eb0c4 0x1898a7000 + 0x440c4 // -[UIWindow _sendTouchesForEvent:] + 0x9b4
    20. 18 UIKit 0x1898e6328 0x1898a7000 + 0x3f328 // -[UIWindow sendEvent:] + 0xbac
    21. 19 UIKit 0x1898b6da0 0x1898a7000 + 0xfda0 // -[UIApplication sendEvent:] + 0x154
    22. 20 UIKit 0x18a0a075c 0x1898a7000 + 0x7f975c // __dispatchPreprocessedEventFromEventQueue + 0xab0
    23. 21 UIKit 0x18a09a130 0x1898a7000 + 0x7f3130 // __handleEventQueue + 0x310
    24. 22 CoreFoundation 0x1839aeb5c 0x1838d1000 + 0xddb5c // __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 0x18
    25. 23 CoreFoundation 0x1839ae4a4 0x1838d1000 + 0xdd4a4 // __CFRunLoopDoSources0 + 0x20c
    26. 24 CoreFoundation 0x1839ac0a4 0x1838d1000 + 0xdb0a4 // __CFRunLoopRun + 0x324
    27. 25 CoreFoundation 0x1838da2b8 0x1838d1000 + 0x92b8 // CFRunLoopRunSpecific + 0x1bc
    28. 26 GraphicsServices 0x18538e198 0x185382000 + 0xc198 // GSEventRunModal + 0xb4
    29. 27 UIKit 0x1899217fc 0x1898a7000 + 0x7a7fc // -[UIApplication _run] + 0x2ac
    30. 28 UIKit 0x18991c534 0x1898a7000 + 0x75534 // UIApplicationMain + 0xd0
    31. 29 SchoolRoom (*) 0x1000784a4 0x10004c000 + 0x2c4a4
    32. 30 libdyld.dylib 0x1828bd5b8 0x1828b9000 + 0x45b8 // start + 0x4
    33. Thread 0 name: Dispatch queue: com.apple.main-thread
    34. Thread 0 Crashed:
    35. 0 libsystem_kernel.dylib 0x1829cf014 0x1829b0000 + 0x1f014 // __pthread_kill + 0x8
    36. 1 libsystem_pthread.dylib 0x182a97450 0x182a92000 + 0x5450 // pthread_kill + 0x70
    37. 2 libsystem_c.dylib 0x182943400 0x1828e0000 + 0x63400 // abort + 0x8c
    38. 3 libc++abi.dylib 0x18240d2d4 0x18240c000 + 0x12d4 // __cxa_bad_cast + 0x0
    39. 4 libc++abi.dylib 0x18242acc0 0x18240c000 + 0x1ecc0 // default_unexpected_handler() + 0x0
    40. 5 libobjc.A.dylib 0x182438844 0x182430000 + 0x8844 // _objc_terminate() + 0x7c
    41. 6 libc++abi.dylib 0x18242766c 0x18240c000 + 0x1b66c // std::__terminate(void (*)()) + 0x10
    42. 7 libc++abi.dylib 0x182427234 0x18240c000 + 0x1b234 // __cxa_rethrow + 0x90
    43. 8 libobjc.A.dylib 0x18243871c 0x182430000 + 0x871c // objc_exception_rethrow + 0x2c
    44. 9 CoreFoundation 0x1838da32c 0x1838d1000 + 0x932c // CFRunLoopRunSpecific + 0x230
    45. 10 GraphicsServices 0x18538e198 0x185382000 + 0xc198 // GSEventRunModal + 0xb4
    46. 11 UIKit 0x1899217fc 0x1898a7000 + 0x7a7fc // -[UIApplication _run] + 0x2ac
    47. 12 UIKit 0x18991c534 0x1898a7000 + 0x75534 // UIApplicationMain + 0xd0
    48. 13 SchoolRoom (*) 0x1000784a4 0x10004c000 + 0x2c4a4
    49. 14 libdyld.dylib 0x1828bd5b8 0x1828b9000 + 0x45b8 // start + 0x4
    Alles anzeigen
    Momentan hoffe ich, ein iPhone 5 zu bekommen, mit dem ich dann richtig debuggen kann und werde dann @nussratte's Vorschlag folgen. Schon dämlich, dass der betroffene Code in den Updates gar nicht verändert wurde und in der zwei Jahre alten Version problemlos auf iOS 10 funktionierte. Ist vielleicht bei diesen Aktionen (AirDrop, Mail) inzwischen auch ein gesonderter Key in der Info.plist nötig? Ähnlich wie NSPhotoLibraryUsageDescription oder NSPhotoLibraryAddUsageDescription...? Aber egal, das wäre eh nur Kaffeesatz-Lesen.

    Drückt mal die Daumen, dass ich zeitnah an das Testgerät kommen...

    Mattes
    Diese Seite bleibt aus technischen Gründen unbedruckt.
  • Okay, Asche über mein Haupt: Das Problem sass - wie so häufig - vor'm Computer. Es lag weder an iOS 10 (inzwischen gab es auch einen Fehlerbericht auf iOS 12), noch an irgendwelchen Metadaten oder gar Jailbreaks, sondern schlicht an mir! Aber der Reihe nach:
    • Ich habe mit der neuen Version eine kleine Änderung des Core Data Models eingeführt (neues BOOL-Attribut), mit Umstellung von Altdaten mittels automatischer Migration
    • Die genannten Fehlerfälle Export / AirDrop / "Open in" haben eines gemeinsam: Sie erzeugen eine Export-Datei mittels NSDictionary, die auf anderen Geräten wieder importiert werden kann
    Ihr ahnt es? Es wäre eine gute Idee (1.) neue Attribute mit einem Default-Value zu versehen und (2.) Import- / Export-Routinen so robust zu machen, dass sie bei fehlenden Daten nicht in der Zuweisung eines nil-Wertes abkacheln. Der Rest der Applikation interpretierte den fehlenden Wert als FALSE und der Fehler trat nicht mehr auf, wenn die Daten z. B. nach Änderungen gespeichert wurden. Klarer Fall eines unzureichenden Testens aller Varianten - wie auch immer das realistisch sein soll. Wie gut, dass ich mein Geld nicht mit diesem Sch... verdiene :D

    Beide Anpassungen habe ich nun durchgeführt, positive Bestätigungen der Melder bekommen und die App mit dem Hinweis "auslaufender iOS-10-Support" in's Review geschickt ... das Problem der fehlende iOS-10-Signierung durch Apple und damit der Testproblematik bleibt ja bestehen.

    Mattes

    P.S.: Falls es interessiert: Auf den Fehler bin ich nur durch Kombination von Änderungshistorie (git), Gemeinsamkeiten der fehlerhaften Funktionen und den Hinweis auf NSDictionary in den Crash-Logs gekommen ... gestern Nacht beim Zähneputzen :D
    Diese Seite bleibt aus technischen Gründen unbedruckt.