Création de la structure iOS pour la configuration de périphérique et Universal avec l'activation de bitcode et la désactivation du bitcode à partir du terminal de command line

#!/bin/sh UNIVERSAL_OUTPUTFOLDER=${BUILD_DIR}/${CONFIGURATION}-universal # make sure the output directory exists mkdir -p "${UNIVERSAL_OUTPUTFOLDER}" # Step 1. Build Device and Simulator versions xcodebuild -target "${PROJECT_NAME}" ONLY_ACTIVE_ARCH=NO \ -configuration ${CONFIGURATION} -sdk iphoneos \ BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}" clean build xcodebuild -target "${PROJECT_NAME}" -configuration ${CONFIGURATION} \ -sdk iphonesimulator ONLY_ACTIVE_ARCH=NO BUILD_DIR="${BUILD_DIR}" \ BUILD_ROOT="${BUILD_ROOT}" clean build # Step 2. Copy the framework structure (from iphoneos build) to the universal folder cp -R "${BUILD_DIR}/${CONFIGURATION}-iphoneos/${PROJECT_NAME}.framework" "${UNIVERSAL_OUTPUTFOLDER}/" # Step 4. Create universal binary file using lipo and place the combined executable in the copyd framework directory lipo -create -output "${UNIVERSAL_OUTPUTFOLDER}/${PROJECT_NAME}.framework/${PROJECT_NAME}" \ "${BUILD_DIR}/${CONFIGURATION}-iphonesimulator/${PROJECT_NAME}.framework/${PROJECT_NAME}" \ "${BUILD_DIR}/${CONFIGURATION}-iphoneos/${PROJECT_NAME}.framework/${PROJECT_NAME}" # Step 5. Convenience step to copy the framework to the project's directory cp -R "${UNIVERSAL_OUTPUTFOLDER}/${PROJECT_NAME}.framework" "${PROJECT_DIR}" # Step 6. Convenience step to open the project's directory in Finder open "${PROJECT_DIR}" 

J'ai ci-dessus script shell pour créer un cadre pour périphérique et universel à partir des options de construction Xcode.

Est-il possible de créer / générer un framework iOS à partir du terminal de command avec le script shell ci-dessus avec la configuration ci-dessous ???

  • 1) Créer un cadre pour la désactivation du bitcode de l'appareil
  • 2) Créer un cadre pour l'activation du bitcode de l'appareil
  • 3) Créer un cadre pour la désactivation universelle de bitcode
  • 4) Créer un cadre pour l'activation universelle des codes binarys

S'il vous plaît laissez-moi savoir les étapes pour créer / générer un cadre iOS à partir du terminal de command. Doit apprécier pour la meilleure explication

    Ajoutez simplement l'argument à votre xcodebuild

    ENABLE_BITCODE=NO pour la désactivation du bitcode

    ENABLE_BITCODE=YES pour l'activation du bitcode

    Par exemple

     xcodebuild -target "${PROJECT_NAME}" ONLY_ACTIVE_ARCH=NO -configuration ${CONFIGURATION} -sdk iphoneos BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}" clean build ENABLE_BITCODE=NO 

    Dans le script shell que vous avez posté, remplacez le code sous # Step 1. Build Device and Simulator versions avec les éléments suivants de manière appropriée.

    1) Créer un cadre pour la désactivation du bitcode de l'appareil:

     xcodebuild -target "${PROJECT_NAME}" ONLY_ACTIVE_ARCH=NO \ -configuration ${CONFIGURATION} -sdk iphoneos \ BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}" clean build ENABLE_BITCODE=NO xcodebuild -target "${PROJECT_NAME}" -configuration ${CONFIGURATION} \ -sdk iphonesimulator ONLY_ACTIVE_ARCH=NO BUILD_DIR="${BUILD_DIR}" \ BUILD_ROOT="${BUILD_ROOT}" clean build ENABLE_BITCODE=YES 

    2) Créer un cadre pour l'activation du bitcode de l'appareil

     xcodebuild -target "${PROJECT_NAME}" ONLY_ACTIVE_ARCH=NO \ -configuration ${CONFIGURATION} -sdk iphoneos \ BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}" clean build ENABLE_BITCODE=YES xcodebuild -target "${PROJECT_NAME}" -configuration ${CONFIGURATION} \ -sdk iphonesimulator ONLY_ACTIVE_ARCH=NO BUILD_DIR="${BUILD_DIR}" \ BUILD_ROOT="${BUILD_ROOT}" clean build ENABLE_BITCODE=YES 

    3) Créer un cadre pour la désactivation universelle de bitcode

     xcodebuild -target "${PROJECT_NAME}" ONLY_ACTIVE_ARCH=NO \ -configuration ${CONFIGURATION} -sdk iphoneos \ BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}" clean build ENABLE_BITCODE=NO xcodebuild -target "${PROJECT_NAME}" -configuration ${CONFIGURATION} \ -sdk iphonesimulator ONLY_ACTIVE_ARCH=NO BUILD_DIR="${BUILD_DIR}" \ BUILD_ROOT="${BUILD_ROOT}" clean build ENABLE_BITCODE=NO 

    4) Création d'un cadre pour l'activation universelle des codes binarys

      xcodebuild -target "${PROJECT_NAME}" ONLY_ACTIVE_ARCH=NO \ -configuration ${CONFIGURATION} -sdk iphoneos \ BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}" clean build ENABLE_BITCODE=YES xcodebuild -target "${PROJECT_NAME}" -configuration ${CONFIGURATION} \ -sdk iphonesimulator ONLY_ACTIVE_ARCH=NO BUILD_DIR="${BUILD_DIR}" \ BUILD_ROOT="${BUILD_ROOT}" clean build ENABLE_BITCODE=YES 

    MODIFIER:
    Pour créer le framework, vous pouvez effectuer l'une des opérations suivantes:
    1. En remplaçant le code pour chaque config, allez au terminal et exécutez le script shell en naviguant vers le dossier contenant le script shell et en exécutant ./<nameOfTheShellScriptFile>.sh . Mais assurez-vous que vous avez les parameters de construction disponibles là-bas. Cela créera le framework avec la configuration appropriée dans le directory ${BUILD_DIR}/${CONFIGURATION}-universal .
    2. Ajoutez un script d'exécution dans le Xcode. Ouvrez votre projet dans Xcode, click la list déroulante des schémas (à côté du button Arrêter) et choisissez votre schéma d'infrastructure. Ouvrez à nouveau la list déroulante et click "Modifier le schéma …". Vous voyez 6 actions à gauche. Vous choisissez quelle action a le plus de sens d'append le script (voulez-vous créer ce cadre universel à chaque exécution ou seulement lorsque vous archivez?). Faites glisser cette action et click Post-actions. Cliquez sur le button + pour append une nouvelle action et click "New Run Script Action". Définissez "Fournir les parameters de génération" à votre cible de structure pour get les parameters de construction appropriés. Collez le script dans la textbox et click Fermer. Maintenant, à chaque fois que vous exécutez l'action dans laquelle vous avez placé le script, le script exécute à nouveau le framework pour les architectures de périphérique et de simulateur et place le framework universel dans le directory de votre projet. Cela prend un certain time, surtout si votre projet est important, alors attendez patiemment jusqu'à ce que le chercheur s'ouvre pour révéler votre directory de projet contenant le framework. Maintenant, vous pouvez soit changer le code dans le script chaque fois que vous voulez une config différente (bitcode activé ou désactivé), soit append des schémas différents pour différentes config et suivre toute cette étape pour chacun des schémas avec le script approprié.