11
votes

Problème avec l'utilisation de plusieurs catalogues d'actifs dans Xcode 5

J'ai une application qui a 2 variantes qui ne diffèrent que de la marque. Pour chaque version, j'ai une approvisionnement et un lanceur dans un catalogue d'actifs. J'ai créé une cible différente pour chaque version. Dans la deuxième version lorsque j'essaie de sélectionner Appicon dans le deuxième catalogue d'actifs, il suffit de parra défaut sur le premier. Supprimer le premier catalogue d'actifs semble le résoudre, mais je préférerais une solution moins «hacky».


4 commentaires

Je ne sais pas si vous l'avez fait ou non, mais il ne devrait y avoir qu'un catalogue par cible (dans votre cas). Vous pouvez modifier quelle cible obtient quel catalogue dans les paramètres de construction du projet.


Les 2 catalogues d'actifs sont dans différentes cibles, bien que les deux apparaissent dans la section générale (icônes d'application et des images de lancement) des deux cibles.


J'ai découvert que si vous renommez les actifs contradictoires dans le 2e catalogue d'actifs, il semble fonctionner, c'est-à-dire Renommer Appicon à Appicon1


Dupliqué possible de Projet Xcode avec plusieurs cibles et catalogues d'actifs multiples


7 Réponses :


2
votes
  1. Utilisez le même catalogue d'actifs pour les deux cibles.
  2. Vérifiez qu'il est inclus dans les deux cibles (cochez l'adhésion à la cible à l'aide de l'inspecteur de fichiers).
  3. sur chaque cible Sélectionnez le nom approprié de l'actif (icônes).

    Cela fonctionnera, je l'utilise avec 8 cibles afin ...

    BTW, je découvre que parfois l'image de lancement ne fonctionne pas lors de l'utilisation de quelques cibles afin que vous puissiez avoir besoin de dupliquer, puis de le sélectionner (Bug XCODE).


3 commentaires

Dites-vous que vous avez un catalogue d'actifs contenant tous les actifs de toutes les cibles I.E. Appicon pour la 1ère cible, appicon2 pour la 2e cible? Si oui, je ne suis pas sûr que ce soit une bonne idée. Chaque application contiendra des actifs qu'il n'utilise pas et les images de lancement de l'iPad sont grandes.


@Markhorgan Oui c'est ce que j'ai. Je pense que vous avez raison mais une autre méthode fait trop de problèmes pour moi ... jusqu'à ce que Xcode 5 serait mieux ...


Mon erreur n'a pas été incluse sur les deux cibles.




1
votes

Après beaucoup de frustration, j'ai des actifs d'images propres, réussies et séparées. Voici ce qui a fonctionné pour moi:

  1. J'ai utilisé Xcode pour créer un catalogue d'images pour la première cible (fichier, nouveau, fichier, actif). Ce a une adhésion à cet objectif seulement. Comme Mark Horgan a suggéré, je nommé l'appicon interne et les lanceurs, si seulement pour faciliter la tâche pour moi-même.

  2. Suivant, j'ai supprimé ce catalogue de mon projet en utilisant la possibilité de supprimer des références.

  3. J'ai répété l'étape 1 et j'ai créé un catalogue d'images pour la 2e cible. Il a une adhésion à ce 2e cible seulement. L'attribution du catalogue à ma cible était délicate car XCode uniquement proposé «N'utilisez pas de catalogue d'images» comme option. Je choisis cette option, puis Xcode propose "Utiliser un catalogue d'actifs". J'ai choisi ma nouvelle catagot. Encore une fois, j'ai nommé l'appicon interne et les lanceurs à Référencez la 2e cible afin que je puisse le reconnaître.

  4. Comme dans 2, j'ai supprimé le catalogue avec une suppression de références supprimées.

  5. Départ Xcode pour un moment, j'ai ouvert une fenêtre de recherche et située mes deux différents images.xcassets fichiers qui avaient été mis sous différents Répertoires de Xcode. J'ai renommé ces fichiers à chaque référence leur cible. (Je les ai également déplacés dans le dossier principal, mais bien sûr c'est une préférence.)

  6. retour dans xcode, i (re) ajouté le xcaquets fichiers, un à la fois, en veillant à ce qu'ils soient ajoutés de manière appropriée à leur cible et copié aux ressources.

  7. puis dans xcode j'ai sélectionné chaque cible et utilisé l'onglet Général pour spécifier correctement l'image catalogue pour chaque cible.


0 commentaires

0
votes

J'ai utilisé @ user216661 solution, mais dans mon cas, je n'avais pas à faire les étapes 2 à 7.

J'ai créé un dossier d'actif avec un nom spécifique pour une cible spécifique (dans mon cas, un dossier d'actif par cible). Ensuite, j'ai ajouté les images à ces dossiers XCASSets en les faisant glisser et en les laissant tomber de Finder. La même chose pour les icônes et les images de lancement. Je n'avais pas à personnaliser les noms graphiques pour chaque cible.

Dans cette solution, vous ne stockez aucun graphique à l'extérieur des dossiers d'actifs.


0 commentaires

1
votes

Je suis en cours d'exécution avec plusieurs cibles où chacun a son propre fichier de catalogue d'actifs, avec Appicon, KnockImage et une personnalisation, j'utilise dans Storyboard pour les arrière-plan.

On dirait que le même problème que j'ai eu, lors de la sélection du catalogue d'actifs des icônes de l'application et de lancer des images, il a fallu le mauvais lorsque vous construisez. Je l'ai résolu en modifiant "l'appartenance cible" pour chaque catalogue d'actifs, le fichier .xcassets. Il est défini pour que chaque fichier XCASSets n'a que la cible qu'elle est liée. Ainsi, une seule cible est sélectionnée par catalogue d'actifs. Maintenant, c'est la bonne appicence et le lancement de la lancée disponible pour chaque cible.


1 commentaires

S'il vous plaît vérifier mon commentaire pour marquer la réponse de Horgan ci-dessous.



2
votes

Dans mon cas, j'utilise des pods de cacao. Le script de cacao pods pods-resources.sh a provoqué le problème. Supprimer les pièces d'actifs du script a résolu le problème.

Assurez-vous de nettoyer votre projet et de supprimer le dossier de données dérivé.

Les pièces à supprimer peuvent être trouvées ici:

https://stackoverflow.com/a/21309102/832111


2 commentaires

Après avoir supprimé ces sections du pods-resources.sh , la petite fenêtre où vous vérifiez que les cibles de chaque catalogue d'actifs n'apparaissent pas. Est-ce attendu? Si oui, comment puis-je les mettre maintenant?


Cette! Jetez un coup d'œil à ce problème de Cocoapodes pour les solutions de contournement. Le crochet Post_install par Jinthagherman est une bonne solution: Github.com/cocoapods/cocoapods/issues/1546 < / a>



0
votes

Que diriez-vous de modifier simplement les actifs de la construction d'options de réglage. Pour moi, cela a fonctionné.


0 commentaires