Mac App crashed im Review - Wie kann man genau diese Version lokal testen?

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

  • Mac App crashed im Review - Wie kann man genau diese Version lokal testen?

    Hallo,

    ich habe eine neue Version einer Mac OS App zum Review eingereicht. Dort ist Sie durch einen Fehler in iCloud abgestürzt und wurde entsprechend rejected. Das Problem: Ich kann den Fehler lokal nicht nachstellen, egal was ich auch versuche.

    Apple sagt mir, dass ich genau die Version die ich eingereicht habe auch lokal testen soll. Das macht natürlich Sinn, aber wie mache ich das?

    Die App verwendet iCloud und enthält entsprechend das iCloud Entitlement. Die App wurde für den App Store erstellt und ist entsprechend mit einem Distribution Profile signiert. Die Kombination führt dazu, dass die App lokal nicht ausgeführt werden kann:

    taskgated-helper[51673]: Starting taskgated-helper
    taskgated-helper[51673]: embedded provisioning profile not valid: file:///Users/AUser/Library/Developer/Xcode/Archives/2014-02-07/MyApp.xcarchive/Products/Applications/MyApp.app/Contents/embedded.provisionprofile
    taskgated-helper[51673]: returning 2 provisioning profiles
    taskgated-helper[51673]: none of the 2 applicable provisioning profile(s) apply
    taskgated-helper[51673]: CPValidateProvisioningDictionaries returning NO with error: (null)
    taskgated[13]: killed com.example.MyApp[pid 51671] because its use of the com.apple.developer.ubiquity-container-identifiers entitlement is not allowed (error code -67050)


    Wird eine Release Version mit einem Development Profile erstellt wird kann diese auch lokal ausgeführt werden. Eine so neu erstellte Version ist aber natürlich nicht exakt die Version die zum Review eingereicht wurde. Was kann ich also tun? Kann ich die eingereichte Version irgendwie mit einem Development Profile neu signieren? Aber auch wenn das gelingt: Ist es dann noch exakt die Version die zum Review eingereicht wurde?


    Ganz abgesehen von diesem Problem:
    Auch wenn es mir gelingen sollte genau die eingereichte Version zu testen habe ich wenig Hoffnung, dass es mir gelingt den Fehler damit nach zustellen. Ich habe das Projekt seit dem Einreichen des Updates nicht verändert. Wenn ich also den selben Code mit den selben Einstellungen auf dem selben System compiliere erhalte ich nach meiner Definition dieselbe App. Natürlich würden sich die erstellten Binaries unterscheiden aber wenn der Zeitpunkt der Compilierung die Fehlerquelle sein sollte bin ich ohnehin ziemlich ratlos.

    Hinzu kommt, dass ich die App nun schon zum zweiten mal eingereicht habe und diese im Review beide Male mit dem gleichen Fehler gecrashed ist, während bei mir auf allen Systemen alles rund läuft. Der Zeitpunkt der Compilierung ist also offensichtlich nicht das Problem sondern die Art und Weise wie getestet wird.

    Apple testet auf einem frischen Mavericks unter einem Gast-Konto. Das habe ich auch getan, wieder mit dem Ergebnis, dass alles rund läuft.

    Was würdet Ihr in diesem Fall tun?

    Problem ist, dass der Crash in einem Backgroundthread von CoreData/iCloud ausgelöst wird. Abfangen kann ich die Exception also nicht...
  • Ja, aber warum ist es ungültig? Kann man Apps die mit einem Distribution Profile signiert sind überhaupt starten, also unabhängig davon ob diese diese iCloud enthalten oder nicht? Dafür gibt es doch gerade AdHoc Profile und Development Profile, weil man ein Distribution Profile selbst nicht ausführen kann. Für mich heißt das also nicht, dass das Profil beschädigt ist, sondern dass es einfach zum ausführen der App auf dem lokalen Rechner ungültig ist.

    Wenn es an dem Profil liegt, warum kann Apple die App im Review dann testen? Ich hab es aber gerade mal versucht ein neues Profil erstellt: Das gleiche Ergebnis.

    Selbst wenn das Profil beschädigt wäre uns sich die App deshalb nicht starten lässt bringt mich das kein Stück weiter. Auch dann müsste ich das Profil der vorhandenen Datei irgendwie austauschen um genau die Version testen zu können die ich beim App Store eingereicht habe. Bringt mich also wieder zu der Frage wie man das Profil austauschen könnte...

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von Agenor ()

  • Falls mal jemand auf ein ähnliches Problem stößt:
    Der Fehler hat (wie schon gesagt) rein gar nichts mit den Profilen zu tun. Es ist schlicht nicht möglich eine für den App Store signierte App mit iCloud lokal zu starten. Das hat mir auch Apple so bestätigt. Um die zum Review eingereichte App zu testen wählt man die diese einfach im Organizer aus und "submitted" diese erneut. Nur eben nicht zum App Store sondern exportiert diese lokal als App. Damit wird das gleiche Build verwendet, nur anders signiert. Und zwar so, dass man die App lokal ausführen kann. Die unterschiedliche Signatur ändert also nichts am Build selber (eigentlich logisch).

    Damit kann man also die eingereichte Version testen. In meinem Fall bringt mich das zwar nicht weiter, weil die App einfach nicht crashed, aber immerhin weiß ich jetzt wie man vorzugehen hat...