2015-03-17 4 views
4

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

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

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

Возможно ли это?

ответ

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. Эти ссылки могут помочь: Add files to an Xcode project from a script?,

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

Вот несколько ссылок, которые могут помочь: how to make xcode run a script before dependencies?, https://www.objc.io/issues/6-build-tools/build-process/, Xcode: Running a script before every build that modifies source code directly но вы также можете Google для «сценария запуска Xcode до сборки» для большего количества ссылок.