#android
#Android
Вопрос:
У меня есть десятки ключей api для facebook и Twitter и многих других сервисов, каков стандартный способ получения разных значений для ключей в зависимости от того, создаю ли я сборку для разработки, промежуточную сборку или производственную сборку?
Ответ №1:
Вы можете использовать статический флаг, чтобы использовать его в блоке переключения для определения ваших ключей. Это работает для простого проекта с двумя или тремя альтернативными ключами.
Если у вас действительно их так много для использования в нескольких проектах, я предлагаю вам добавить их во вспомогательный класс, чтобы свести к минимуму изменение кода в ваших классах. Что-то вроде:
public class BuildHelper {
public static final int DEBUG=0;
public static final int STAGING=1;
public static final int PRODUCTION=2;
public static int BUILD;
public static String getFbKey() {
switch(BUILD) {
case DEBUG: return "xxx";
case STAGING: return "yyy";
case PRODUCTION: return "zzz";
}
return null;
}
public static String getTwitterKey() {
switch(BUILD) {
case DEBUG: return "xxx";
case STAGING: return "yyy";
case PRODUCTION: return "zzz";
}
return null;
}
}
и использовать его как:
public class YourClass extends Activity {
public static String FB_KEY;
public static String TWITTER_KEY;
//etc.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
BuildHelper.BUILD=BuildHelper.DEBUG; // or STAGING or PRODUCTION
FB_KEY = BuildHelper.getFbKey();
TWITTER_KEY = BuildHelper.getTwitterKey();
//etc.
}
}
Комментарии:
1. В итоге я выполнил проверку во время выполнения для переменной strings, подобной этой
Ответ №2:
Я бы сохранил их в отдельных файлах свойств и ссылался на соответствующий файл свойств в вашем скрипте сборки / пути к классу eclipse в зависимости от того, что вы делаете.