2017-10-04 6 views
2

J'ai fini d'écrire un projet et de le sortir sur l'AppStore. Maintenant, je veux dupliquer le projet et modifier l'ID de l'ensemble, les certificats de signature, l'écran de démarrage, les liens spécifiques au projet et les images utilisées dans Storyboard. Depuis les classes du modèle et le modèle d'entreprise ne changera pas du tout. Et au lieu de copier-coller le projet, changer sur les classes et quand un bug survient en le corrigeant sur les deux projets, les changements seront seulement sur l'interface et la signature sur le même projet.Environnement de diffusion multiple avec Xcode 9 - Swift

Est-ce possible?

Y at-il de toute façon que cela peut être fait?

Répondre

1

Vous devez créer une copie de votre cible, ce qui vous permettra de créer une application distincte avec la même logique de projet (code) et différents ID d'ensemble, Certificats de signature, Splash Screen, les liens spécifiques au projet.

Voici les étapes pour créer la cible double:

  1. Sélectionnez votre cible (Projet >> Général >> Sélectionner la cible)
  2. Clic droit sur projet cible
  3. Sélectionnez Duplicate (Menu popover fournira votre option pour créer une cible en double)

enter image description here

  1. Voici une copie de votre cible, que vous pouvez distribuer en tant que nouvelle application avec la même logique métier.

enter image description here

Vos futures mises à jour/modifications dans le code auront un effet à la fois la cible, si votre fichier de code source a attribué les deux cibles.

Remarque: Lorsque vous créez un nouveau fichier (après avoir créé une cible dupliquée/multiple), assurez-vous de bien sélectionner les deux cibles pour qu'elles soient efficaces pour les deux applications.

enter image description here

Regardez ici, mon nouveau fichier TestFile.swift a (des liens vers plusieurs cibles).

enter image description here

maintenant pour identifier votre programme cible du projet et de différencier vos liens:

var API_LINK = "" 

if let targetName = NSBundle.mainBundle().infoDictionary?["CFBundleName"] as? String { 

    if (targetName == "Test") { 

     API_LINK = "http://webservice.Test" 

    } else if (targetName == "Test copy") { 

     API_LINK = "http://webservice.TestCopy" 

    } else { 

     print("Something wrong - targetName not found") 

    } 
} 
+1

Merci :) semble facile! mais j'ai encore des questions, De cette façon, Comment spécifier les liens et les images de Storyboard? – MBH

+1

Grande explication, ce que je n'ai pas obtenu est-ce, j'ai le fichier 'Constants.swift', Il contient' API_LINK = "http://webservice.link"; ', dans le fichier' Constants.swift', comment pouvons-nous reconnaître quelle cible est-ce? et quel lien API est nécessaire? – MBH

+1

En utilisant la constante de nom de cible, vous devez définir la condition if-else. Créez une constante de nom de cible (chaînes ou enum) et vérifiez-la pendant l'exécution – Krunal