Génération d'icônes iOS et Android dans Cordova / PhoneGap

J'ai un projet Cordova fraîchement créé avec la configuration suivante config.xml (utilisé les instructions de http://docs.phonegap.com/en/edge/config_ref_images.md.html ). J'ai aussi ajouté 2 plateformes (iOS et Android).

quand j'exécute cordova run ios ou cordova run android , le projet a toujours les icônes Cordova par défaut. Ma compréhension de la documentation est que Corodva est censé créer les icônes automatiquement basé dans le icon.png fourni dans le config.xml .

config.xml :

<?xml version='1.0' encoding='utf-8'?>
<widget id="com.testapp" version="1.1.2" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
    <name>SingleApp</name>
  <preference name="DisallowOverscroll" value="true" />
  <preference name="AutoHideSplashScreen" value="false" />
  <preference name="Orientation" value="portrait" />
  <preference name="Fullscreen" value="false" />
  <preference name="target-device" value="handset" />

  <description>
      A sample Apache Cordova application that responds to the deviceready event.
  </description>
  <author email="dev@cordova.apache.org" href="http://cordova.io">
      Apache Cordova Team
  </author>
  <content src="index.html" />
  <access origin="*" />

  <icon src="icon.png" />

</widget>
31
demandé sur greg 2014-05-23 17:26:09

7 réponses

j'ai écrit un script qui génère automatiquement des icônes pour cordova en utilisant ImageMagick:

https://github.com/AlexDisler/cordova-icon

Pour l'utiliser, créez une icône".png" fichier et le placer dans le dossier racine de votre projet, puis exécuter:

cordova-icon

et il va générer toutes les icônes nécessaires pour les plates-formes de votre projet.

vous pouvez également le configurer comme un crochet dans votre projet cordova les icônes sera généré à chaque fois que vous générez le projet, basé sur l'icône.png que vous avez ajouté. (instructions dans le readme).

68
répondu Alex 2014-05-23 13:31:56

si vous utilisez cordova 3.5.0 ils ont mis à jour les docs. Dans les anciennes versions, j'ai toujours eu à remplacer les icônes manuellement dans le projet, mais la dernière version de cordoue fonctionne bien.

http://cordova.apache.org/docs/en/3.5.0/config_ref_images.md.html#Icons%20and%20Splash%20Screens

comme vous pouvez le voir ici https://github.com/phonegap/phonegap-cli/issues/58 problème. Donc, si vous utilisez une version plus ancienne de cordova je recommande de la mettre à jour avec la commande npm update -g cordova

et après cela, vous devriez mettre à jour votre configuration.xml à quelque chose comme ceci:

    <icon src="www/res/drawable-xxxhdpi/icon.png" />
    <platform name="android">
          <icon src="www/res/drawable-ldpi/icon.png" density="ldpi" />
          <icon src="www/res/drawable-mdpi/icon.png" density="mdpi" />
          <icon src="www/res/drawable-hdpi/icon.png" density="hdpi" />
          <icon src="www/res/drawable-xhdpi/icon.png" density="xhdpi" />
    </platform>

    <platform name="ios">
              <!-- iOS 7.0+ -->
              <!-- iPhone / iPod Touch  -->
              <icon src="www/res/ios/icon-60.png" width="60" height="60" />
              <icon src="www/res/ios/icon-60@2x.png" width="120" height="120" />
              <!-- iPad -->
              <icon src="www/res/ios/icon-76.png" width="76" height="76" />
              <icon src="www/res/ios/icon-76@2x.png" width="152" height="152" />
              <!-- iOS 6.1 -->
              <!-- Spotlight Icon -->
              <icon src="www/res/ios/icon-40.png" width="40" height="40" />
              <icon src="www/res/ios/icon-40@2x.png" width="80" height="80" />
              <!-- iPhone / iPod Touch -->
              <icon src="www/res/ios/icon.png" width="57" height="57" />
              <icon src="www/res/ios/icon@2x.png" width="114" height="114" />
              <!-- iPad -->
              <icon src="www/res/ios/icon-72.png" width="72" height="72" />
              <icon src="www/res/ios/icon-72@2x.png" width="144" height="144" />
              <!-- iPhone Spotlight and Settings Icon -->
              <icon src="www/res/ios/icon-small.png" width="29" height="29" />
              <icon src="www/res/ios/icon-small@2x.png" width="58" height="58" />
              <!-- iPad Spotlight and Settings Icon -->
              <icon src="www/res/ios/icon-50.png" width="50" height="50" />
              <icon src="www/res/ios/icon-50@2x.png" width="100" height="100" />
     </platform>

comme vous pouvez le voir, les URI sont relatifs au chemin du projet cordova, pas au dossier www.

12
répondu Javier Abrego 2014-06-03 15:15:26

les paramètres config.xml pour les icônes ne fonctionnent qu'avec le service de construction PhoneGap. Après l'ajout de deux plates-formes, vous devez manuellement (ou vous pouvez créer un crochet, mais je n'ai pas fait moi-même) placer vos icônes dans les chemins.

pour iOS:

PROJECT_PATH/platforms/ios/PROJECT_NAME/Resources/icons

Pour Android:

PROJECT_PATH/platforms/android/res/drawable

Android a de nombreux res/drawable-* dossiers, l'utilisation comme s'applique à votre application, mais au minimum ajouter à res/drawable

puis cordova prepare ou build ou run 151990920"

7
répondu Dawson Loudon 2014-05-28 16:49:41

si vous êtes prêt à installer un logiciel supplémentaire pour la génération d'icône, vous pouvez utiliser Ionic qui a une telle fonction.

Faire ce qui suit:

  1. npm install ionic -g
  2. Put png, psd or .les fichiers ai pour les icônes et/ou splashscreens à ${project_location}/resources
  3. ionic resources

si vous voulez générer des icônes seulement, il y a une clé pratique pour cela:

ionic resources --icon

plus de détails ici

7
répondu Aleksandr Kravets 2015-02-14 15:17:16

ne devez-vous pas spécifier le dossier qui contient l'icône? Cordova remplace l'icône par l'icône par défaut lorsqu'elle n'est pas trouvée.

avez-vous essayé de remplacer par quelque chose comme:

<icon src="res/icon.png" />
2
répondu Davi S. 2014-06-02 20:23:03

essayez de suivre https://www.npmjs.org/package/cordova-gen-icon

exemple:

$ cordova create hello com.example.hello
Creating a new cordova project with name "HelloCordova" and id "com.example.hello" at location "hello"
$ cd hello
$ cordova platform add ios
Creating ios project...
Preparing ios project
$ cordova-gen-icon 
Generate cordova icons with
project: .
icon   : ./www/img/logo.png
target : 

generate iOS icons
Success generate icon set
0
répondu mrded 2014-09-01 23:17:03

une petite explication pour les gens qui disent <icon src="res/icon.png" /> pas de travail !

, Vous devez mettre l'icône.png dans ces deux dossiers

project_name/res /

et

project_name/platform_name/res/

Suit:

cordova create hello com.example.hello HelloWorld
cd hello

Copiez votre icône.png à project_name/res/ Ouvert config.xml et mettre <icon src="res/icon.png" />

après cette course

cordova platform add android

Maintenant, copiez votre icône.les png ... hello/platforms/android/res/

puis

cordova build android

et enfin

adb install  platforms/android/build/outputs/apk/android-debug.apk

après cela, vous pouvez voir sur le périphérique votre application avec votre icône

0
répondu MTK 2017-08-06 12:01:18