2016-08-23 2 views
0

Я знаю, что я должен поместить файл с секретными ключами AWS в .gitignore, но тогда пользователь github вынужден восстановить код констант, содержащий ключи AWS (быстрая структура со статическим let's). Есть ли что-то, что позволило бы мне заменить другой файл, когда я нажимаю? Есть лучший способ сделать это?Сохранение ключей AWS из github

Уточнение: Я не заинтересован в обмене ключами AWS с другими разработчиками. В моей ситуации каждый разработчик независим и может использовать свои собственные ключи AWS.

То, что я пытаюсь сделать, - создать локальную среду разработки, в которой я могу разработать и протестировать быстрое приложение на Xcode (без изменения ключей каждый раз, когда я совершаю), и тем не менее все же могу нажать на публичный GITHUB ,

Когда кто-то клонирует репозитарий, я хочу, чтобы иметь возможность построить только после обновления фиктивных ключевых значений, но я никогда не хочу, чтобы мои секретные ключи должны быть доступны в любом случае на GitHub

+0

переменные окружения и их загрузка при необходимости? Все AWS cli поддерживают это из коробки. –

+0

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

ответ

3

Вы можете добавить свои ключи к plist, который добавлен в ваш файл .gitignore.

Таким образом, вам не нужно постоянно сбрасывать эти быстрые переменные каждый раз, когда вы хотите совершить сделку, а просто извлекает из локального plist. Большинство моих проектов также используют этот подход, основанный на plist, для ориентации на различные схемы. Я создаю словарь «debug» для моих предпродажных ключей api и словарь «release» для моих производственных ключей api. У этого есть дополнительный бонус, что вы можете сохранить производственные ключи api от временных сотрудников, если вы действительно этого хотели. Работает для меня, и очень аккуратно.

Да, вы все равно должны получить другого разработчика, который как-то делает файл plist; но есть много способов сделать это в зашифрованном виде ... это всего лишь текстовый файл.

+0

Я принял ваш ответ, потому что в итоге я использовал файл AWSKeys.xcconfig и ссылался на них в plist. Я поместил xcconfig в .gitignore, и поэтому, когда его нет, все еще есть набор полей в plist для каждого из ключей, которые каждый может заполнить своей собственной информацией. И это также позволяет разные версии, как вы упомянули. Я много читаю об этом, но ни один из этих методов не является безопасным способом скрытия ключей от кого-то, взломавшего iphone, но по крайней мере они не плавают вокруг github. – Bruce0

0

Большинство проектов столкнувшись с этой проблемой, просто замените фиктивные значения в местах фактических ключей.

Git особенно упрощает эту работу - пока вы не меняете фиктивную линию, каждый git pull/(git fetch + git merge) сохранит линию пользователя, если он однажды отправил файл.

Смежные вопросы