Operación de detalles de configuración de múltiples objetivos de iOS

Enlace original
Requisito: cuando hay pequeñas diferencias entre dos o más aplicaciones, puede crear múltiples objetivos en un proyecto, cada objetivo correspondiente a una aplicación.

Operación principal: cuando comparta archivos, utilice el área de macros. Pero algunos archivos no son cómodos de compartir, como el archivo Info.plist. No comparta archivos, simplemente configure y elija su propio objetivo

Seleccione el archivo en el panel izquierdo --> muestre el panel derecho --> seleccione el ícono "Archivo" en la siguiente columna del panel derecho (generalmente en el extremo izquierdo) --> puede ver la Membresía de destino señalada por flecha. La verificación indica a qué destinos pertenece el archivo. Si se marcan varios destinos, el archivo será utilizado por varios destinos. Seleccione el destino correspondiente y luego busque el archivo correspondiente en la fase de compilación y elimínelo. Si se agrega. Como se muestra abajo:

Uno es agregar archivos compilados (".m", ".h" o ".swift:" en Swift) y el otro son recursos (excepto lo que se muestra en la imagen, generalmente imágenes, etc.). Pasos de configuración: 1.
Crear
destino
2, modificar nombre de destino, nombre de esquema
3. Configurar Info.plist
4. Configuración del archivo puente
5. Configuración de definición de macro (macros de preprocesador)
6. Configuración de activos, xcassets (imágenes de la aplicación, página de inicio)

Hay dos formas de crear un objetivo:
Primero, cree un nuevo objetivo a través de Archivo–>Nuevo–>Destino y luego seleccione una de las plantillas para crear. Para objetivos de tipo aplicación, puede seleccionar la plantilla Aplicación vacía, pero la nueva target tiene su propio AppDelegate y main, pero cómo reutilizar el AppDelegate y main originales (no se encontró información correspondiente)

2. Otro método es hacer una copia del objetivo original (solo duplicados). Lo bueno es que si los dos objetivos tienen muchas similitudes, puedes usar duplicar para copiar todas las configuraciones relevantes sin hacer demasiadas modificaciones para generar un nuevo objetivo.
Ejemplo: segundo método:
1. Copie uno de los objetivos en el proyecto (si hay varios objetivos en el proyecto, copie el objetivo más similar para que no sea necesario modificar demasiado el archivo Info.plist).

El nombre de destino predeterminado de un nuevo proyecto es el mismo que el nombre del proyecto. Haga clic derecho
en el objetivo original (si hay varios objetivos en el proyecto, puede seleccionar el objetivo más cercano para copiar, lo que puede reducir una cantidad relativamente pequeña de configuración) como se muestra en la siguiente figura.

Haga clic en Duplicar o utilice la tecla de método abreviado Comando+D y aparecerá la siguiente ventana emergente:

Generalmente, Solo Duplicar se selecciona en el medio. La selección predeterminada es Duplicar y pasa a iPad. Depende de lo que necesites seleccionar. Este artículo solo explicará Solo Duplicar. Después de la selección, como se muestra a continuación.

Se generarán dos archivos, y sus reglas de nomenclatura son el nombre de destino copiado más "copia" (espacio más copia), copia de TargetTest (archivo de destino) y copia de TargetTest-Info.plist (archivo plist).

2. Modifique el nombre del archivo de destino y su esquema correspondiente.

Como se muestra en la imagen de arriba: 1. Después de la modificación, haga clic en otros archivos y luego regrese (haga clic en MyTargetTest), encontrará que los nombres para mostrar de 2 y 3, y el ID del paquete también se han modificado automáticamente. Pero el nombre del esquema correspondiente al nuevo objetivo en 4 no se ha cambiado en consecuencia, así que modifíquelo y luego haga clic en Administrar esquemas (administrar todos los esquemas) y aparecerá la siguiente imagen.

Haga clic en el esquema que desea modificar (en este momento, elimine el "-" en la esquina inferior izquierda para ingresar al estado opcional y podrá eliminar el esquema), luego haga clic izquierdo para que ingrese al estado editable y podrá puede modificarlo (se recomienda cambiarlo con el nombre del archivo de destino correspondiente para evitar errores y problemas innecesarios). Una vez completada la modificación, haga clic en cerrar y se modificará el nombre del esquema correspondiente. Pero el ID del paquete aún no se ha modificado.

3.
La operación general de configuración de Info.plist: después de cambiar el nombre, debe modificar la ruta de Info.plist, el ID del paquete, el número de versión, etc. en la configuración de compilación.
a. Los detalles son los siguientes:
la ruta del archivo está en el directorio raíz del proyecto, como se muestra en la Figura 1

Seleccione el archivo plist como de costumbre y luego haga clic en el nombre del archivo. El nombre del archivo se vuelve editable y se puede modificar (debido a que el archivo .plist es el archivo Info.plist del destino correspondiente, se recomienda que el nombre del archivo sea "correspondiente"). nombre del objetivo" + "info". Se recomienda hacer clic derecho en MyTargetTestInfo.plist, hacer clic en Mostrar en Finder para ingresar a la carpeta donde se encuentra, eliminar la referencia. Luego modificar el nombre). Luego haga clic de nuevo en el archivo de destino y seleccione MyTargetTest. Verá las flechas en las dos imágenes siguientes.

La flecha apunta a la ruta del archivo Info.plist del objetivo actual, pero acabamos de modificar el nombre del archivo, por lo que el archivo plist correspondiente no se puede encontrar aquí. No se apresure a cambiarlo todavía. Se recomienda agregar una nueva carpeta al proyecto, como se muestra a continuación una vez completada la creación. (Función: almacenar algunos archivos que pertenecen al destino para facilitar su administración).

Busque el archivo en la carpeta que acaba de abrir y muévalo a la carpeta MyTargetTest, pero el archivo no se puede encontrar en Xcode (es decir, no hay ninguna referencia al archivo en Xcode) ¿Cómo puedo agregar una referencia a Xcode? Hay dos métodos (jaja, los únicos que conozco hasta ahora): 1. Puede usar Finder para arrastrar el archivo MyTargetTestInfo.plist a la carpeta correspondiente a Xcode (igual que arrastrar imágenes a Xcode). 2. Cierre Finder, vaya a la carpeta donde se encuentra el archivo MyTargetTestInfo.plist correspondiente en Xcode, haga clic derecho y seleccione Agregar archivo a "Nombre del proyecto", aparecerá la siguiente ventana

Ya lo agregué aquí; de lo contrario, los archivos no agregados están en un estado normal y el desenfoque indica que no se hace referencia al archivo. Luego seleccione los archivos no agregados y haga clic en Agregar. [Nota: No agregue archivos que ya se hayan agregado, de lo contrario las carpetas se crearán infinitamente (teóricamente), lo que llenará la capacidad de su computadora. Los amigos interesados ​​pueden probarlo con un nuevo proyecto (sonrisa)] Por cierto
Dice que desea cambiar su nombre para incluir información, así que primero elimine la referencia y luego modifique el nombre del archivo. Luego agréguelo nuevamente. Por cierto, demostraré el segundo método para agregar una referencia, como se muestra en la siguiente imagen. Dado que eliminé la referencia, significa que el archivo no está en Xcode, por lo que la imagen de arriba está borrosa ( significa que está en la carpeta y Xcode hace referencia a ella), el archivo en la imagen a continuación está en un estado normal (lo que indica que el archivo existe en la carpeta, pero Xcode no hace referencia a él)

Luego haga clic en Agregar. El nombre del archivo Info.plist ha sido modificado.

b. Dado que se han modificado el nombre y la ubicación del archivo Info.plist asociado con el objetivo correspondiente, es necesario asociarlo nuevamente. Hay dos métodos (jaja, actualmente solo conozco dos)
1. Opere de la siguiente manera (proyecto -> destino correspondiente -> General -> Identidad, haga clic en Elegir archivo Info.plist..., busque el archivo correspondiente para importar)

2. Opere como se muestra a continuación (proyecto -> destino correspondiente -> Configuración de compilación -> buscar Info.plist -> haga clic en el valor (ruta) en el lado izquierdo de Info.plist)

Luego ingrese la ruta relativa (SRCROOT)/MyTargetTest/MyTargetTestInfo.plist, la ruta donde se encuentra el caso actual. "(SRCROOT)/MyTargetTest/MyTargetTestInfo.plist, la ruta donde se encuentra el caso actual. "( S R C R O O T ) / My T a r g e t T e s t / My T a r g e t T e s t Inf o .plist , caso actual La ruta _ _ _ _ _ _ _ _ donde se encuentra . "(SRCROOT)/ "Obtener la ubicación del archivo del proyecto + "/.../...plist", la dirección del archivo relativa al directorio raíz

c.Modificar BudleId y número de versión

Modifique lo que desee (se recomienda que sea el mismo que el nombre del destino) de la siguiente manera:
modifique la versión Número de compilación según sea necesario (son los mismos que el destino original al copiar)

4. Configuración del archivo puente:
dado que este es un nuevo proyecto de prueba, hay muchos archivos de configuración que no existen. Como se muestra a continuación, ¡no hay una ruta al archivo puente! Según las necesidades de desarrollo, puedes compartirlo o crearlo tú mismo. Crea uno con Info.plist. Se crea simplemente cuando lo copias. El destino original tiene un archivo puente y se comparte de forma predeterminada. Si necesita crear otro archivo puente, escriba la ruta del archivo puente creado en $(SRCROOT)/…/…pch. Configure de la misma manera que info.plist.

5. Configuración de definición de macro (macros de preprocesador) (Otros indicadores de Swift se configuran en el proyecto Swift. Dado que Swift cancela las definiciones de macro, la configuración en el lado de la macro no es válida; hay dificultades que mencionar una vez completada la ubicación): cuando hay múltiples objetivos use el mismo archivo
, pero existen ciertas diferencias: en el código, se pueden ejecutar diferentes códigos en función de diferentes macros para distinguir el objetivo, como se muestra en el paso 4 a continuación.

Las configuraciones son las siguientes:
a. Seleccione el área de depuración, haga clic en el espacio en blanco en el lado derecho de la línea y aparecerá una ventana. Haga clic en "+" en la esquina inferior izquierda de la ventana para agregar un nuevo elemento. El cursor se moverá a 3. Ingrese la información que necesita.

b. La operación de liberación es la misma. Complete la configuración del nuevo Objetivo como se muestra a continuación.

Se realiza la misma operación para el objetivo original, como se muestra a continuación: La operación 1 cambia el objetivo y las operaciones restantes son las mismas que las anteriores.

Implementar, por ejemplo, en el código:
importar diferentes archivos de encabezado según diferentes valores de macro

Finalizar.
También puede configurar las áreas cubiertas en la Macro 1 para que tengan los mismos caracteres como este

No establezca un objetivo de la siguiente manera:

Swift: haga doble clic en el valor a la derecha y aparecerá un cuadro para establecer el valor.
Ingrese -D + "nombre autodefinido" para los dos objetivos.

El código 1.png
2.png
se implementa de la siguiente manera:
1. En archivos normales (.h .m), los nombres de las macros se utilizan directamente para distinguirlos.

2. No hay diferencia entre el uso de archivos pch y .m .h

Swift:
#if APPTYPE1
print(“APP1”)
#elseif APPTYPE2
print(“APP2”)
#else
print(“APP – 其它”)
#endif

6. Configuración de Assets.xcassets, generalmente establece el ícono de la aplicación y la configuración de la imagen de inicio.
Para distinguir entre ellos, puede crear un nuevo .xcassets, uno para cada .xcassets, o compartir los mismos .xcassets.
a. No compartir.
Seleccione el nuevo archivo .xcassets y haga clic en "Siguiente"

Haga clic en "Siguiente" y aparecerá la siguiente imagen:
Operación 1. Asigne un nombre al archivo 2. Seleccione el objetivo que desea configurar y haga clic en "crear".

De la siguiente manera: No hay otros archivos en él, haga clic a continuación para agregar el ícono correspondiente y la imagen de inicio.

Como se muestra en la siguiente figura: Operación 1. "+", Operación 2 seleccione "Iconos de aplicaciones e imágenes de inicio" para crear los archivos necesarios

Creó dos archivos y los arrastró (importando las imágenes requeridas)

Haga clic en el archivo .xcassets original. Puede ver que el archivo contiene el objetivo MyTargetTest. Haga clic en el botón de verificación para cancelarlo. De esta forma, los dos objetivos tienen archivos .xcassets correspondientes.

Seleccione el proyecto para ver el estado del objetivo, como se muestra a continuación: Operación 1 Haga clic en el archivo del proyecto "TargetTest" para ver que los íconos correspondientes del objetivo han cambiado. Operación 2 "General" para ver íconos de aplicaciones e imágenes de inicio

Porque no hay ningún archivo launchImage en el archivo Assets.xcassets en la imagen de arriba. Puede ver "Usar catálogo de activos..." en 3. Así que continúa y completa la imagen de lanzamiento del archivo Assets.xcassets.

También puede modificar la imagen del icono correspondiente aquí.

b. Compartir (parece que solo se pueden distinguir Icon y Lanuch. Si administra otras imágenes o los archivos de imágenes correspondientes en .
No Y los nombres son diferentes

Luego, en el objetivo -> General -> Iconos de aplicaciones e imágenes de inicio, importe la configuración correspondiente a la imagen
objetivo1 en la imagen de arriba: de la siguiente manera

La configuración de target2: como sigue

De esta manera, puede distinguir entre imágenes de icono y de inicio.

* Suplemento de 5 macros:
Macros/Otras banderas Swift agregan "macro" (OC es una macro y Swift es una bandera). Si su proyecto es mixto, cuando desee utilizar clases en Swift en el archivo OC, debe importar el archivo "nombre del proyecto" -Swift.h en el archivo OC. Al distinguir Target en este archivo OC, se requieren macros, por lo que es necesario agregar macros al Target correspondiente para distinguir Target OC
:
#if APPTYPE == 0
//Operación correspondiente
#elif APPTYPE == 1
//Operación correspondiente
#else
/ / Acciones correspondientes
#endif

Swift:
#if APPTYPE1
print(“APP1”)
#elseif APPTYPE2
print(“APP2”)
#else
print(“APP – 其它”)
#endif

Supongo que te gusta

Origin blog.csdn.net/zhuweideng/article/details/117029470
Recomendado
Clasificación