J'ai besoin d'avoir un paramètre.Bundle dans notre construction de débogage, mais je ne veux pas l'avoir dans notre libération. Comment puis-je aborder cela? Y a-t-il un point-ce que je puisse utiliser pour le supprimer de la phase de construction des ressources de copie? P>
3 Réponses :
trouvé. J'ai créé un point d'exécution comme la dernière phase de mes phases de construction. De là, je supprimai toutes les entrées dans le plist des paramètres et le remplace par un numéro de version. De cette façon, je peux utiliser les paramètres.Bundle root.plist comme paramètres de mon projet de débogage (pour pouvoir définir quel serveur de test à utiliser ou toute autre chose qui serait spécifiée dans une construction de débogage). Donc, lorsque vous construisez du débogage, la racine.plist est ce que vous vous attendez à ce que ce soit. Lorsque vous exécutez la version de sortie, le contenu est remplacé par les informations CFBUndolversion de votre info.Plist. Tous les choix liés à débogage sont partis.
if [ "$CONFIGURATION" = "Release" ] ; then echo "Replacing $CODESIGNING_FOLDER_PATH/Settings.bundle for 'Release' build" APPVERSION="`/usr/libexec/PlistBuddy -c \"Print :CFBundleVersion\" \"$CODESIGNING_FOLDER_PATH/Info.plist\"`" SETTINGSBUNDLEPATH="$CODESIGNING_FOLDER_PATH/Settings.bundle/Root.plist" /usr/libexec/PlistBuddy -c "Delete :PreferenceSpecifiers" "$SETTINGSBUNDLEPATH" /usr/libexec/PlistBuddy -c "Add :StringsTable string 'Root'" "$SETTINGSBUNDLEPATH" /usr/libexec/PlistBuddy -c "Add :PreferenceSpecifiers array" "$SETTINGSBUNDLEPATH" /usr/libexec/PlistBuddy -c "Add :PreferenceSpecifiers:0 dict" "$SETTINGSBUNDLEPATH" /usr/libexec/PlistBuddy -c "Add :PreferenceSpecifiers:0:Type string 'PSGroupSpecifier'" "$SETTINGSBUNDLEPATH" /usr/libexec/PlistBuddy -c "Add :PreferenceSpecifiers:0:Title string 'Version Information'" "$SETTINGSBUNDLEPATH" /usr/libexec/PlistBuddy -c "Add :PreferenceSpecifiers:1:Type string 'PSTitleValueSpecifier'" "$SETTINGSBUNDLEPATH" /usr/libexec/PlistBuddy -c "Add :PreferenceSpecifiers:1:Title string 'Release:'" "$SETTINGSBUNDLEPATH" /usr/libexec/PlistBuddy -c "Add :PreferenceSpecifiers:1:Key string 'appVersion'" "$SETTINGSBUNDLEPATH" /usr/libexec/PlistBuddy -c "Add :PreferenceSpecifiers:1:DefaultValue string '$APPVERSION'" "$SETTINGSBUNDLEPATH" fi
Pourquoi ne voudriez-vous pas simplement supprimer les paramètres.Bundle?
Vous pouvez écrire un script pour supprimer complètement le paquet de paramètres pour une certaine configuration de construction. Pour la cible, sous "Réglages de construction", une option permet d'exécuter un script. Ce script devrait faire ce dont vous avez besoin:
BUILD_APP_DIR=${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app if [ "$CONFIGURATION" == "Release" ]; then rm -Rf $BUILD_APP_DIR/Settings.bundle echo "Removed Settings Bundle" fi
Alternativement, n'incluez tout simplement pas le paquet de paramètres dans les "Ressources de la coque de copie" et ajoutez un script de phase de construction uniquement pour l'inclure uniquement pour certaines configures.
Voici un script exécuté qui met également à jour une version et construisez L'ensemble des paramètres p> Assurez-vous de modifier les fichiers BLAH / supports CODE> chemin sur tout ce qui est réellement p> p> P>