2015-02-26 1 views
0

У меня есть приложение, имеющее два сервера STAGING and PRODUCTION. Я использовал для выпуска двух сборок с изменением серверов в части кодирования. Но теперь мой клиент попросил предоставить единую сборку, где мы можем предоставить опцию в настройках приложения или настройках телефона, чтобы изменить URL.В iOS - Сервер производства и промежуточного уровня, включенный в единую сборку

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

Я хочу иметь одну сборку, где пользователь может изменить опцию Staging/Producetion. Пожалуйста, помогите мне. Является ли это возможным. ?

+1

Вы не можете переключаться между режимами отладки и выпуска, но вы можете переключиться на время выполнения между двумя разными базовыми URL (или кодами), используя любую конфигурацию, которую вы можете придумать. Подумайте о странице настроек с помощью переключателя. – Thilo

+0

Может быть разным. target может помочь здесь, но вам нужно указать идентификатор идентификатора diff для temp. поэтому пользователь может установить оба целевых объекта на одном устройстве. –

+0

Спасибо за реплику. – Manasa

ответ

1

Вы можете просто добавить переключатель в свое приложение, чтобы включить режим постановки (выключить = производство). Состояние этого переключателя сохраняется в NSUserDefaults. Затем, в зависимости от этого состояния, вы выбираете правильный URL-адрес сервера в своем коде.

+0

Спасибо за реплику. – Manasa

0

Вы можете сделать этот путь -

1.In страницы входа в зависимости от области, которую вы используете для входа в промежуточном или производствах URL, открыть UIAction лист, когда поле (В моем случае я использую TableView клетка, вы можете использовать текстовое поле или кнопку) щелкает затем показать поля как ниже -

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
[tableView deselectRowAtIndexPath:indexPath animated:YES]; 
    if(indexPath.row == 2) { 
    [self showActionSheet]; 

[tableView deselectRowAtIndexPath:indexPath animated:YES]; 
} 
} 

призывающих лист действий выше в didselectrow, который будет открыт лист действий, как показано ниже

- (void)showActionSheet 
{ 
NSString *actionSheetTitle = @"Choose Connection"; 
NSString *other1 = @"development"; 
NSString *other2 = @"staging"; 
NSString *other3 = @"production"; 
NSString *cancelTitle = @"Cancel"; 

UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:actionSheetTitle 
                 delegate:self 
               cancelButtonTitle:cancelTitle 
              destructiveButtonTitle:nil 
               otherButtonTitles:other1, other2, other3, nil]; 

[actionSheet showInView:self.view]; 
} 


- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex 
{ 
//Get the name of the current pressed button 
NSString *buttonTitle = [actionSheet buttonTitleAtIndex:buttonIndex]; 

if ([buttonTitle isEqualToString:@"development"]) { 

    NSUserDefaults * defaults = [NSUserDefaults standardUserDefaults]; 

    [defaults setObject:nil forKey:@"UserId"]; 

    NSLog(@"Destructive pressed --> Delete Something"); 
} 
if ([buttonTitle isEqualToString:@"staging"]) { 
    NSLog(@"Other 1 pressed"); 
} 
if ([buttonTitle isEqualToString:@"production"]) { 
    NSLog(@"Other 2 pressed"); 
} 

} 

и, наконец, сохраните состояние пользователя, как указано выше, с помощью NSUserDefaults, как указано выше, в индексе кнопки щелчка.

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