Hängt ITC wieder oder Problem mit On-Demand-Ressources?

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

  • Hängt ITC wieder oder Problem mit On-Demand-Ressources?

    Ich habe gestern und heute jeweils einen neuen TestFlight-Build hochgeladen. Beide wurden vom System verarbeitet, trotzdem steht in Klammern hinter den Builds immer noch (In Bearbeitung) und ich kann sie nicht als Testbuild auswählen. Normalerweise dauert es nur ein paar Minuten, bis die Builds für interne Tests bereitstehen. Nun aber (beim ersten Build) schon über 24 Stunden.

    Bin mir nun nicht sicher, ob da ITC wieder mal spinnt und ich nur Geduld haben muss oder ob das daran liegt, dass ich in diesen Builds das erste man mit On-Demand-Ressources experimentiere. Wenn ich mir die Builds in ITC ansehe, steht da nämlich:

    On-Demand-Ressourcen
    Ja 0 Inhaltspakete

    Warum 0 Inhaltspakete? Ich habe die Ressourcen jeweils getagt und beim Testen funktioniert das auch. Muss man da noch extra was hochladen oder hat diese Anzeige nichts zu bedeuten?

    Gruß
    So Long, and Thanks for All the Fish.
  • Also offenbar müssen die Ressourcen in einem XCAssets liegen. Dann wird die App in ITC freigegeben. Da komme ich aber zu meinem nächsten Problem und ich hoffe, dass mir da jemand auf die Sprünge helfen kann:

    Wie kann ich auf Daten in einem XCAssets zugreifen? Mit NSBundle.mainBundle().URLForResource() komme ich nicht weiter, da die Dateien ja nicht im Main-Bundle liegen. Nun gibt es zwar mit NSDataAsset eine neue Klasse, mit der ich auf die Daten zugreifen kann, jedoch brauche ich die URL, da dort große Datenpakete liegen, auf die ich mit einem NSFileHandle zugreifen muss. Wie komme ich nun an eine URL oder den Path aus einem Data.xcassets?

    Gruß
    So Long, and Thanks for All the Fish.
  • nussratte schrieb:

    bei Bildern machst du einfach imageNamed

    hier könnte man auch wieder schreiben, lies etwas einführendes
    Lies mal meinen Beitrag. Wenn ich schreibe, dass es große Datenpakete sind auf die ich mit NSFileHandle zugreifen muss, dann hilft mir imageNamed garantiert nicht weiter.

    Michael schrieb:

    Du wirst dich mit dem Zugriff über NSDataAsset begnügen müssen, denn die Assets werden alle in einer einzelnen Datei im Programmpaket abgelegt.
    Kann doch eigentlich nicht sein, denn dann würde On-DemandResources nicht funktionieren. Die einzelnen Dateien werden ja erst bei Bedarf geladen und liegen eben nicht im Programmpaket.
    So Long, and Thanks for All the Fish.
  • Babelfisch schrieb:

    Kann doch eigentlich nicht sein, denn dann würde On-DemandResources nicht funktionieren. Die einzelnen Dateien werden ja erst bei Bedarf geladen und liegen eben nicht im Programmpaket.
    Oh ja, stimmt. Geht hier ja um On Demand Resources. Ich habe mit den Dingern noch nicht gearbeitet, aber nachdem ich die Dokumentation ein wenig überflogen habe, denke ich, dass du folgendermaßen an die URL kommst. Zunächst muss du ja über einen NSBundleResourceRequest die benötigte Resource laden. Dieser NSBundleResourceRequest hat eine Property bundle. In diesem Bundle würde ich dann nach der Resource suchen.
  • Mache ich ja eigentlich. In dem Property gibt man das Bundle an, wo die Ressource gespeichert werden soll (standardmäßig das Main-Bundle). Das gebe ich auch explizit noch mal an und wenn die Ressourcen nicht in einem XCAssets liegen, sondern direkt in meinen »Supporting Files«, dann klappt das auch. Jedoch hatte ich da die im Ausgangspost erwähnten Probleme mit ITC. Dann hatte ich die Dateien mal in ein XCAssets gepackt und für Testflight hochgeladen. Das hat dann auch geklappt und der Build wurde in ITC freigegeben. Nur komme ich jetzt eben nicht mehr an die URL ran. NSBundle.mainBundle().URLForResource() findet die Dateien nicht, obwohl der NSBundleResourceRequest erfolgreich war und resourcesAvailable = true ist.

    Irgendwie finde ich auch keine Beispiele, wo mal mehr als ein albernes Bild mit ODR geladen wird, obwohl das ja eigentlich nur bei größeren Datenmengen notwendig wird.
    So Long, and Thanks for All the Fish.
  • Michael schrieb:

    Und wenn du mal <Instanz von NSBundleResourceRequest>.bundle.URLForResource() versuchst?
    Ändert leider nichts daran. Das ist das gleiche Bundle, welches ich im Initializer mit angebe.

    Ok ich lasse das jetzt mit ODR erst mal sein. Entweder gibt es da noch ein paar Kinderkrankheiten oder irgendwo ist noch ein Fehler bei mir drin, den ich nicht sehe. ODR sind zwar recht einfach nutzbar, da die Ressourcen aber nur über Callbacks zu laden und auch abzufragen sind, lassen sie sich nicht so ohne weiteres in eine bestehende App einbinden, die an Stelle x testen will, ob y verfügbar ist.

    Gruß
    So Long, and Thanks for All the Fish.