Интерпретатор оболочки запускается как подпроцесс. Когда она export
является переменной окружения, она влияет только на этот процесс интерпретатора оболочки и его подпроцессов, но не влияет на родительский процесс (т. Е. Xcode) и его процессы-братья (другие фазы сборки).
Вы можете заставить фазу сборки сценария оболочки взять входной файл, скажем, Info.plist.in, и создать из него Info.plist. Это преобразовало бы вход к выходу, как вам нравится. Например, он может использовать sed
для замены специальной строки значением, которое он должен иметь. Обязательно настройте входы и выходы фазы сборки сценария выполнения соответствующим образом.
В качестве альтернативы, вы можете сделать так, чтобы фаза сборки run-script создала файл заголовка, который определяет макрос, например, api_version.h, который #define
s API_VERSION
, #include
этот файл заголовка в вашем Info.plist, и включил предварительная обработка Info.plist в настройках сборки. Опять же, убедитесь, что входы и выходы фазы сценария выполнения верны.