Forums Développement Multimédia

Aller au contenu

Astuce : Flex 4.6 + Air 3.3 + ANE pour iOS, comment ne pas être bloqué à 57%

air3.3 mobile ane CODE Actionscript

5 réponses à ce sujet

#1 sebastien.portebois

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 3876 messages

Posté 13 June 2012 - 14:57 PM

Voici un petit retour d’expérience pour éventuellement aider ceux qui rencontreront le même soucis et espérer qu'ils trouveront plus facilement la solution.

Le SDK Air 3.3 est sorti, et vous êtes impatient de mettre à jour vos projets Air mobiles. Vous fusionnez votre SDK Flex avec celui Air 3.3 téléchargez, dans vos options de projets vous mettez bien à jour le descripteur -app.xml pour spécifier air3.3. Roulement de tambour.
Vous compilez et testez sous Android, nickel ca marche. Vous lancez une compilation iOS pour continuer et la, Flash Builder se bloque à 57% lors du regroupement.... il ne termine jamais le package de l’ipa, sans indiquer d’erreur.

Damn!


Afin de conserver une trace et vous éviter de perdre du temps là dessus (et me permettre aussi de retrouver l’astuce plus tard), voici la description du problème, et sa solution.

L’origine du problème? Si vos ANE pour iOS ont été compilés avec des version du SDK iOS antérieurs à celle du SDK Air 3.3, alors beaucoup de warning vont être générés lors du packaging en ipa de votre application faisant appel à cette ANE. Ces warnings ne sont pas présentés par flash Builder, mais ila du mal à les digérer et bloque.
Après pas mal de recherche, j’ai trouvé ce post qui résume le soucis et la solution temporaire (temporaire car les prochaines mises à jour de Flash Builder et Flash pro devraient corriger ca) :
AIR iOS app packaging with Flash Tooling and AIR 3.3

En substance, ca nous indique d’ajouter l’argument -w pour supprimer les warning dans l’ANE. Mais là survient un autre problème : vous n’avez pas les sources ou pas de mac avec XCode pour recompiler l’ANE. L’astuce se trouve dans les commentaires qui donne une très bonne piste, qui vous permettra de corriger votre ANE en suivant la même logique:
- après avoir fait un backup, renommer votre fichier ane en zip, allez éditer dedans les ficheir platform.xml du ou des packages iOS pour ajouter l’argument -w mentionné, et recompiler le tout avec adt.
Et la si votre ANE est un peu plus complexe ça peut se corser.
Personnellement c’est cet article qui m’a aidé à bien packager mon ANE avec les version Android, iOs x86 (débug) et iOs ARM :
Building a Native Extension | Part 5 – Putting It All Together

Pour être concret, j’utilisais l’ANE ContactEditor https://github.com/memeller/ContactEditor

En ajoutant mon fichier p12 et un batch pour lancer le paquettage de l’ane, j’ai donc la structure de fichiers suivante :

|   package.bat
|   spo.p12
|   catalog.xml
|   ContactEditor.swc
|   extension.xml
|  
+---Android-ARM
|          contactEditor.jar
|          library.swf
|        
+---default
|          library.swf
|        
+---iPhone-ARM
|          libContactEditor.a
|          library.swf
|          platform.xml
|        
+---iPhone-x86
|          libContactEditorSimulator.a
|          library.swf
|          platform.xml
 

Dans mon batch, je prends soin d’ajouter adt à mon path, et surtout de bien ajouter celui de mon SDK mis à jour avec Air 3.3 :

@SET PATH=%PATH%;D:\Program Files (x86)\Adobe\Adobe Flash Builder 4.6\sdks\4.6.0 Air 3.3\bin

Ensuite, il ne me reste plus qu’à lancer l’enpaquettage au format ANE via adt, en spécifiant bien tous les composants de l’ANE (c’est pour cette étape que les compléments d’informations mentionnés plus haut m’ont bien aidé à ne pas oublier d’élément) :

adt -package -storetype pkcs12 -keystore spo.p12 -storepass 1234 -target ane ContactEditor.ane extension.xml -swc ContactEditor.swc -platform iPhone-ARM -C iPhone-ARM . -platform Android-ARM -C Android-ARM . -platform default -C default . -platform iPhone-x86 -C iPhone-x86 .


Spoiler

Une fois terminé, il suffit d’utiliser l’ane généré dans notre projet (attention à bien nettoyer le projet ou à relancer Flash Builder pour éviter d’être perturbé par le cache) et la compilation vers Air 3.3 d’un projet mobile avec une ane pour iOS fonctionne à nouveau !

Attention, ne vous mélangez pas dans la syntaxe très limpide des -C... la règle c’est qu’un argument -C demande d’inclure les ressources ciblées dans le paquet. Comme nous voulons inclure des morceaux d’arborescence, nous indiquons un dossier ‘.’ situé dans un sous-dossier, par exemple l’ensemle du sous dossier iPhone-ARM est enpaquetté via l’argument “-C iPhone-ARM . “ Soyez aussi étourdi que moi en plaçant mal un espace ou en décalant un point, et vous saurez pourquoi ;-)

En espérant que ca permettra à quelques-uns de plus facilement surmonter les galère de mises à jour des projets existants.


Bonne journée,

Séb

@sportebois

#2 Monz

  • Moderateur
  • PipPipPipPipPipPipPipPip
  • 3541 messages

Posté 13 June 2012 - 15:00 PM

Bonjour et merci beaucoup pour ce partage ! ;-)

#3 _Larry_

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 121 messages

Posté 14 June 2012 - 09:15 AM

merci :)

#4 skyrick

    Ceinture Orange

  • Members
  • PipPipPip
  • 43 messages

Posté 08 November 2012 - 10:32 AM

Merci pour ces explications, je vais essayer !

Sinon, est ce que quelqu'un sait si avec flash builder 4.7 Beta + AIR 3.5 beta il y a le meme soucis ?
J'ai essayé hier sur le 4.7 spécial game (livré avec AIR 3.4) mais blocage à 57% également :(

#5 draad

  • Members
  • PipPipPipPipPipPipPipPip
  • 654 messages

Posté 08 November 2012 - 16:23 PM

Je ne me souviens plus qu'elle version de air me faisait ca, je crois que c'etait la version 3.3, le probleme venait de l'impossibilite de compiler en Standard, on ne pouvait compiler qu'en rapide ... J'avais trouve la solution sur les forums d'adobe et cela semblait etre un probleme connu

#6 DaveD

  • Members
  • PipPipPipPipPipPipPipPip
  • 2453 messages

Posté 11 November 2012 - 16:55 PM

c'est drôle moi ça fonctionne nickel j'ai meme fait une appli ios avec notification et ça fonctionne nickel et avec flash builder 4.5
J'ai quand même galéré 1 mois avant d'y arriver tout seul ;) mais je suis satisfait de mois maintenant je pense avoir fait le tour dans le developpement mobile

bonne journée



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)

authorised training centre

Centre de Formation Mediabox - Adobe et Apple Authorised Training Center.

Déclaré auprès de la Direction du Travail et de la Formation Professionnelle

Mediabox : SARL au capital de 62.000€ - Numéro d'activité : 11 75 44555 75 - SIRET : 49371646800035

MEDIABOX, 23, rue de Bruxelles, 75009 PARIS

FFP