Один другой ключ для нескольких файлов Info.plist в схеме?

Файл Info.plist моего приложения содержит около 20/30 ключей. Для внешнего SDK, который мы реализуем, требуется, чтобы его ключ приложения был установлен в Info.plist, но требуются отдельные ключи для схем отладки, корпоративного распространения и выпуска.

Есть ли способ создать условные дополнения к Info.plist без необходимости поддерживать три дубликата файла (и дублировать все остальные ключи, которые идентичны для всех целей)?

По сути, мне бы хотелось, чтобы база plist в точности такая, как сейчас, а затем дополнительные новые -Debug, -Distribution и Release, которые просто содержат этот новый ключ. Чего я пытаюсь избежать, так это повторения всех ключей, так как это затруднит добавление новых в будущем.

Это возможно?


person Luke    schedule 17.03.2015    source источник


Ответы (1)


Вы можете попробовать несколько разных вещей.

Сценарий запуска Xcode, выполняемый перед сборкой приложения. Это сценарий, который автоматически выполняется перед сборкой. Скажем, 3 повторяющихся файла plist называются InfoA.plist, InfoB.plist и InfoC.plist, которые являются точными дубликатами. При сборке проекта содержимое InfoA.plist дублируется в InfoB.plist и InfoC.plist. Для этого потребуются некоторые знания о написании сценария оболочки, но сценарий довольно прост.

Вы можете дублировать и переименовывать файлы в скрипте. Или вы можете использовать инструменты командной строки, чтобы скопировать содержимое основного файла в повторяющиеся файлы. Для изменения содержимого файлов plist можно использовать две утилиты командной строки: plutil и https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man8/PlistBuddy.8.html. Эти ссылки могут помочь: Добавить файлы в проект Xcode из сценария ?,

Измените схему и добавьте предварительное действие. Ваши схемы также позволяют вам добавлять предварительные действия к вашей сборке, и вы можете делать то же самое, что и выше, но настраивать его как предварительное действие вместо сценария фазы сборки.

Вот несколько ссылок, которые могут помочь: как запустить xcode сценарий перед зависимостями?, https://www.objc.io/issues/6-build-tools/build-process/, Xcode: запуск сценария перед каждой сборкой, который напрямую изменяет исходный код, но вы также можете найти в Google« сценарий запуска xcode перед сборкой »для получения дополнительных ссылок.

person xdeleon    schedule 13.12.2015