Xcode: как скомпилировать переменные окружения и ссылаться на них в Swift? - PullRequest
0 голосов
/ 05 ноября 2019

У меня есть ключ API, определенный на моей платформе CI / CD следующим образом:

export API_KEY="XXXXXXXXXX"

Есть ли способ, как я могу каким-то образом скомпилировать эту переменную с моей сборкой, чтобы я могссылаться на него в Swift и не беспокоиться о переменной, определяемой в среде двоичного файла во время выполнения? Я не могу использовать ProcessInfo.processInfo.environment, очевидно, потому что ключ API определен только в моей среде CI / CD. Я хочу, чтобы мой двоичный файл был скомпилирован с ключом, чтобы при распространении моего приложения ключ был доступен для использования.

Мой пример использования заключается в том, что я хочу избежать использования ключа API в моем git-репозитории, и вместо этогополучить его с платформы CI / CD при создании сборки. Если есть способ внедрить переменную среды, которая затем компилируется как часть двоичного файла, это было бы идеально.

1 Ответ

2 голосов
/ 05 ноября 2019

Вы можете сделать сценарий предварительного действия в секции сборки Xcode Xcode pre-action build

, который изменит местозаполнитель с помощью следующего кода:

let apiKey : String = "<# THE_API_KEY #>"

Изменить код непосредственно в исходном файле

Перед каждой сборкой.

И вы можете добавить еще один, если у вас есть рабочий ключ в предварительном действии Архива

Пример

поместите переменную apiKey в файл, к которому вы хотите получить доступ

В Pre-action выполните сценарий для замены текста заполнителя, например THE_API_KEY

Сценарий будет выглядеть следующим образом

 cat $PROJETCT/$PATH_TO_FILE | sed 's/THE_API_KEY/YOUR_KEY' > $PROJETCT/$PATH_TO_FILE

Не забудьте очистить код, чтобы избежать ввода ключа API в коммит

с Post-action

cat $PROJETCT/$PATH_TO_FILE | sed 's/YOUR_KEY/THE_API_KEY' > $PROJETCT/$PATH_TO_FILE
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...