7
votes

Comment puis-je éviter d'utiliser les paramètres.Bundle dans la version de version V.S. Déboguer la construction?

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?


0 commentaires

3 Réponses :


12
votes

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


1 commentaires

Pourquoi ne voudriez-vous pas simplement supprimer les paramètres.Bundle?



5
votes

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


0 commentaires

1
votes

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 xxx

Assurez-vous de modifier les fichiers BLAH / supports chemin sur tout ce qui est réellement


0 commentaires