iPad: Fehlermeldung bei Installation einer App/2.

Ich habe Feuer gemacht!

Ich habe Feuer gemacht:

Will man per Open Screen Project Manager eine AS3-Anwendung kompilieren, so ist das relativ einfach. Tricky wird es,wenn man diese Anwendung auf dem iPad installieren will… Mit iTunes hatte ich die folgenden Fehlermeldungen:

  1. Die App “xy” wurde nicht auf dem iPad “abc” installiert, da der Signaturaussteller nicht gültig ist:
    Das falsche Zertifikat wird verwendet. Statt des “Your Certificate” musste ich ein “Team Member Certificate” benutzen.
  2. Die App “xy” wurde nicht auf dem iPad “abc” installiert, da die Berechtigungen nicht gültig sind:
    Der “Identifier for distribution” ist im Open Screen Manager, Reiter “Project”, falsch eingetragen. Dort darf NICHT die komplette App ID stehen, sondern nur der “Bundle Identifier”, also ohne “Bundle Seed ID” stehen. In anderen Worten: Dort darf nur “com.yourDomain.yourApp” stehen, NICHT “ABC1234XYZ.com.yourDomain.yourApp”
  3. “The app “xy” was not installed on the iPad “abc” because the entitlements are not valid:
    Der gleiche Fehler wie 2., vergleiche hier.

Man kann übrigens auch Xcode nutzen, um die App zu installieren. Die Fehlermeldung aus 2. lautet dann: “The executable was signed with invalid entitlements. The entitlements specified in your application’s Code Signing Entitlements file do not match those specified in your provisioning profile. (0xE8008016).”

Flash: Export von BitmapData in SWCs

BitmapData bekommt im Konstruktor eine Breite und eine Höhe. Das ist schlecht, wenn man die BitmapData aus einem SWC liest, denn dann weiß man die Größe erst *nach* dem instantiieren^^ Ich habe mir sagen lassen, dass es (ab CS5?) eine Methode gibt, um BitmapData so zu exportieren, dass die korrekte Größe als Default-Parameter übergeben wird. Wenn jemand weiß wie das geht: Immer her damit!

Allerdings brauch man die korrekte Größe gar nicht: Man kann auch 1/1 angeben, was den Compiler zufrieden stellt, das Bitmap aber nicht davon abhält, trotzdem die korrekte Größe zu haben:

HTH

Flash Player 10.0, TextField-Bug [UPDATE]

In einigen früheren Versionen des Flash Players 10.0 (zum Beispiel 10.0.12.36/Windows) gibt es einen Bug in der TextField-Klasse: Verbreitert man das Textfeld nachträglich, so dass Zeilen “hoch rutschen” (es also weniger Zeilen gibt), so wird numLines nicht korrekt aktualisiert. Das kann insbesondere zu Problemen mit dem SplitTextField von Greensocks führen, wenn SplitTextField.TYPE_LINES gesetzt ist… Lösung: Den (HTML-) Text neu setzen, das aktualisiert numLines:

UPDATE: Das Neusetzen des Textes führt dazu, dass z.B. die Textfarbe zurückgesetzt wird. Stattdessen sollte man besser appendText(”) nehmen.

VerifyError: Error #1107: Die ABC-Daten sind beschädigt

VerifyError: Error #1107: Die ABC-Daten sind beschädigt, versuchtes Lesen außerhalb des gültigen Bereichs.

im Zusammenhang mit TweenMax? Bzw, besser gesagt: Im Zusammenhang mit TweenLite aus dem TweenMax-ZIP? Hatte ich auch. Habe auf TweenMax v11.411 aktualisiert, und nehme statt TweenLite nun TweenNano. Die Calls zu TweenMax waren bei mir nicht betroffen; TweenLite allerdings auch in der Version 11.

Der Fehler trat bei mir nur unter Windows auf, nicht unter OS X, also Obacht!

Flash: tabEnabled vs. tabChildren

Weil’s neulich gerade aufkam: Wenn ein SWF den Focus hat, kann man mit Tab durch zB Eingabefelder springen. Das ist gut. Was schlecht ist: Das jeweils gewählte Eingabefeld bekommt dann so einen gelben Rahmen. Der hat vermutlich denselben Grund wie die “outline” in CSS: Die Bedienbarkeit ohne Maus zu erhöhen. Er hat aber auch denselben Nachteil: Designer mögen ihn nicht 🙂

Wer ihn entfernen will (den Rahmen, nicht den Designer), kann entweder flash.display.InteractiveObject.tabEnabled auf false setzen. Das müsste man aber für jedes Eingabefeld machen. Alternativ setzt man flash.display.DisplayObjectContainer.tabChildren auf false, und zwar auf den root-Clip.

Flash: addFrameScript()

Großartige undokumentierte Funktion, die Kollege Menzel da entdeckt hat: MovieClip.addFrameScript()!

Man denke zum Beispiel an

Kein Event.ENTER_FRAME, kein nix. Was man damit alles machen kann: FLAs/SWCs komplett Code-frei halten. Eine SWF mit Logik, eine mit Design. Viele schlaue Sachen.

FDT+Ant: Java Heap Space und PermGen Space [Update]

Wer beim Kompilieren mit Ant in FDT einen Java Heap Space Error bekommt, kann der Java Virtual Machine mehr Speicher zuweisen. Nein, nicht über die Eclipse.ini, sondern über die Einstellungen:

Einstellungen -> Java -> Installed JREs -> [aktuelles JRE] -> Default VM Arguments -> “-Xmx512m”
(ohne Anführungszeichen; den Wert ggf. abwandeln)

Quelle

Wer dagegen einen “PermGen Space”-Error bekommt (kenne ich auch erst seit neuestem), der regelt das über die “External Tools Configuration”:

“Run”-Menü -> External Tools -> External Tools Configurations -> [aktueller Ant-Task] -> JRE -> VM Arguments -> “-Xmx512m”
(ohne Anführungszeichen)

Hier muss man etwas ausprobieren; mein Wert weicht von der Quelle ab, und die nutzt andere Einstellungen als ihre Quelle 🙂

UPDATE:

Auf http://factornine.wordpress.com/2008/04/15/how-to-increase-memory-allocated-to-eclipse/ sehe ich, wie ich mir nicht nur den aktuellen Heap Space anzeigen lassen kann, sondern auch, wie ich manuell die Garbage Collection angezeigt bekomme:

Einstellungen -> General -> Show heap status

Das Ganze sieht dann so aus:

Unexpected multiname type: 16

FDT 4 plus Flex 4 melden mir gerade

[mxmlc] Unexpected multiname type: 16
[mxmlc] Unexpected multiname type: 16
[mxmlc] /Users/Shared/workspace/foo/bar/lib/util/VectorUtils.as
[mxmlc] Fehler: Typ wurde nicht gefunden oder war keine Kompilierungszeit-Konstante: .

Keine Ahnung was das ist – aber beheben kann ich es durch Löschen aller .swf.cache-Dateien und Zurücksetzen des Compilers.

Witzigerweise gibt es einen Eintrag in den Adobe-Foren dazu, in dem auch Vector involviert ist… der scheint mir noch nicht ganz ausgereift zu sein. So kann ich zum Beispiel als Übergabeparameter einer Funktion nicht Vector.<*> angeben (auch nicht Vector.<Object>), sondern nur *, aber das führt hier vllt zu weit.

Flash Player (10.1): Verbindung mit dem Debugger herstellen

Neulich im Flash Builder: “Es wird auf die Verbindung von Adobe Flash Player mit dem Debugger gewartet”. Die kommt aber nie zustande. Ich hatte das Problem bisher immer, also auch mit dem Flash Player 9 in FDT, …, aber in diesem Fall war es der Flash Player 10.1 (Debug), OS X, Firefox, Flash Builder. Die Lösung:

  1. Run your application in debug mode
  2. Right click over the Flash movie
  3. Change the option from Localhost to “Other Machine”
  4. Type the IP address 127.0.0.1
  5. Click Connect

Danke auch an Christian 🙂