#ios #xcode
#iOS #xcode
Вопрос:
Я новичок в разработке iOS и пытаюсь создать практическое приложение с использованием API Facebook Graph.
Когда я интегрируюсь с API Facebook, мне требуется сохранить идентификатор приложения в файле Info.plist проекта.(https://developers.facebook.com/docs/ios/getting-started#configure )
Хотя идентификатор приложения Facebook не является сверхсекретным, я хочу открыть исходный код своего репозитория на GitHub, и меня беспокоила необходимость загружать идентификатор приложения вместе с исходным кодом.
Я мог бы добавить такой файл .gitignore
или убедиться, что удаляю конфиденциальную информацию всякий раз, когда загружаю ее на GitHub, но они, по-видимому, подвержены ошибкам и совсем не элегантны.
Исходя из фона Java, я использовал для хранения паролей базы данных и другой секретной информации в качестве системных переменных среды или сохранял их в файле настроек инструмента сборки, таком как Maven settings.xml
, чтобы они поддерживались отдельно от исходного кода.
Существуют ли известные рекомендации по отделению конфиденциальной информации от хранилища при разработке iOS?
Спасибо.
Комментарии:
1. Вы смотрели на NSUserDefaults?
Ответ №1:
Как насчет этого сценария:
-
Создайте файл MyId.txt на вашем Mac (домашний каталог или каталог, к которому можно предоставить общий доступ, например ~/FacebookConfidential/) для хранения идентификатора FacebookAppId.
-
Добавьте сценарий запуска на этапах сборки проекта Xcode, прочитайте MyId.txt содержимое файла и установите для него значение info plist с помощью plistbuddy. Цель состоит в том, чтобы обновить список свойств информации, чтобы Facebook SDK мог получать идентификатор во время выполнения.
INFO_PLIST="info.plist" FACEBOOK_ID=$(<~/FacebookConfidential/MyId.txt) if [ -n ${FACEBOOK_ID} ]; then /usr/libexec/PlistBuddy -c "Set :FacebookAppID ${FACEBOOK_ID}" ${INFO_PLIST} fi
-
Используйте git pre-commit hook, чтобы очистить FacebookAppId в info plist или изменить его на значение заглушки, чтобы убедиться, что FacebookAppId не передан в репозиторий. Вы также можете захотеть вызвать plistbuddy в перехватчике.
-
Сотруднику необходимо выполнить шаг 1 и создать ~/FacebookConfidential/MyId.txt в его системе.
Таким образом, идентификатор FacebookAppId сохраняется в вашей системе, единственное, чем можно поделиться, — это путь. Надеюсь, это прольет свет.