la meilleure façon d'ajouter de la section licence d'iOS paramètres de faisceau
Mon application iOS utilise un certain nombre de composants tiers sous licence Apache 2.0 et similaires, licences, ce qui m'oblige à inclure divers éléments de texte, ce genre de chose:
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
Il semble raisonnable précédent pour mettre cette information en vertu d'une "Licence" sous-entrée dans les paramètres de faisceau (sur l'ipad, facebook, pages, keynote, numbers et wikipanion semblent tous faire).
Je suis un peu en difficulté en vue d'obtenir le même bien; il me semble nécessaire de scinder le texte ligne par ligne et entrer dans xcode une ligne à la fois (et xcode4 semble avoir un plantage de problème lors de la modification de la plists).
Il semble que le genre de chose qu'il n'y a presque certainement un script quelque part pour le faire, ou une simple façon de le faire que j'ai raté.
Vous devez vous connecter pour publier un commentaire.
Je pense que j'ai maintenant réussi à résoudre tous les problèmes que j'ai été en cours d'exécution dans.
J'ai une commodité script que j'utilise pour aider à générer de l' .plist et .fichier de chaînes, illustré ci-dessous.
Pour l'utiliser:
Voici le script:
La configuration de vos Paramètres.bundle
Si vous n'avez pas créé de Paramètres.bundle, allez dans Fichier --> Nouveau - > Nouveau Fichier...
En vertu de la section des Ressources, trouver les Paramètres Bundle. Utilisez le nom par défaut et l'enregistrer à la racine de votre projet.
Développez le
Settings.bundle
groupe et sélectionnezRoot.plist
. Vous aurez besoin d'ajouter une nouvelle section où sa clé seraPreference Items
de typeArray
. Ajoutez les informations suivantes:La
Filename
points clés de la plist qui a été créé par ce script. Vous pouvez modifier latitle
à ce que jamais vous le souhaitez.Exécuter Le Script Au Moment De La Construction
Aussi, si vous voulez l'exécution de ce script à chaque fois que vous construisez votre projet, vous pouvez ajouter une phase de construction de votre cible:
Après vous avez terminé, vous pouvez glisser le
Run Script
phase de génération plus tôt dans le processus de construction. Vous aurez envie de le déplacer vers le haut avant deCompile Sources
de sorte que les mises à jour de vos Paramètres de Faisceau compilé et copié.Mise à jour pour iOS 7: iOS 7 semble gérer le "Titre" de la clé différente et est gâcher le rendu du texte. Pour corriger que le Remerciements.plist besoin d'utiliser le "FooterText de la clé" au lieu de "Titre". Cette façon de modifier le script:
$keynum
n'est pas interpolées dans le heredoc, à moins queEOD
est non cotées. Je n'ai pas de modifier les privilèges sinon, je venais de le réparer moi-même 🙂$keynum
dans le plist mais je ne peux pas reproduire cette erreur maintenant, doit avoir été quelque chose d'autre (j'ai eu l'indentation des problèmes lorsque je copie-collé). Merci pour le script!<key>FooterText</key>
mais cela n'a pas aidé. C'est à quoi il ressemble pour moi: s24.postimg.org/vukxsfcth/...<key>Title</key>
à<key>FooterText</key>
dans les Remerciements.plist, qui est généré! Si vous avez besoin de modifier le script! je mettrai à jour le post avec pour refléter les changements nécessaires.Ici est la même solution que @JosephH (sans traduction), mais fait en Python pour quelqu'un qui préfère python sur perl
<3
syntaxe de Perl. 😉current_file = codecs.open(filename, 'r', 'utf-8')
pour l'unicode des licences.Comme une alternative, pour ceux qui utilisent CocoaPods, il va générer un 'Remerciements' plist pour chaque cible de votre Podfile qui contient les détails de la Licence pour chaque Pod utilisé dans la cible (en supposant que les détails ont été spécifiés dans le module spec). La liste des propriétés de fichier qui peut être ajouté à iOS paramètres de faisceau.
Il y a également des projets en cours pour permettre aux données d'être converti et affichées dans l'application à la place:
https://github.com/CocoaPods/cocoapods-install-metadata
https://github.com/cocoapods/CPDAcknowledgements
J'ai pensé que je jetterais mon itération sur Sean est génial de code python dans le mélange. La principale différence est que cela prend une entrée de répertoire et puis, de manière récursive de recherche pour les fichiers de LICENCE. Il dérive de la valeur de titre à partir du répertoire parent du fichier de LICENCE, de sorte qu'il joue bien avec les cocoapods.
La motivation était de créer un script pour garder automatiquement la partie juridique de mon application jusqu'à ce jour comme je l'ai ajouter ou supprimer des gousses. Il le fait aussi d'autres choses comme de supprimer les retours à la ligne forcé de licences de l'paragraphes regarder un peu mieux sur les appareils.
https://github.com/carloe/LicenseGenerator-iOS
J'ai fait un script en Ruby inspiered par @JosephH script.
Cette version ne sera, à mon avis, de mieux représenter l'individu projets open source.
Wisit iOS-AcknowledgementGenerator télécharger le script et le projet de l'échantillon.
C'est ce qu'remerciements vont ressembler dans votre Application:
Ce document est un addendum à JosephH de réponse. (Je n'ai pas de rep pour le commentaire)
J'ai eu à déplacer
<key>StringsTable</key>
<string>Acknowledgements</string>
vers le bas au-dessus de la dernière
</dict>
dans le script Perl.Avant cette modification, la rubrique "Remerciements" dans l'App était vide et XCode ne pouvais pas lire la résultante de Remerciements.plist. ( "Les données ne peut pas être lue parce qu'elle n'est pas dans le format correct.")
(XCode 6.3.2 iOS 8.3)
Le script Python de Sean dans ce fil fonctionne. Mais il ya un couple de choses de base à connaître.
Ack Ack: Accusé De Réception Plist Générateur
Un temps, j'ai créé un script Python qui analyse les fichiers de licence et crée une belle Remerciements plist que vous pouvez utiliser dans vos Paramètres.plist. C'est beaucoup de travail pour vous.
https://github.com/Building42/AckAck
Caractéristiques
--help
pour plus de détails)Installer
Exécuter
Capture d'écran
Si vous avez des suggestions d'améliorations, n'hésitez pas à poster une question ou une pull request sur GitHub!