Как проверить, работает ли перенос основных данных с использованием сборок adhoc? - PullRequest
0 голосов
/ 11 января 2012

Я настроил свое приложение для использования миграции, например:

NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
                         [NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption,
                         [NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption, nil];

Теперь я хочу создать специальную сборку и протестировать ее на своих устройствах.

Обычно я удаляю приложение из iTunes и удаляю приложение на моем устройстве, а затем помещаю новую сборку в iTunes и затем синхронизирую, чтобы скопировать новую сборку на мое устройство.

Но вЧтобы проверить миграцию, я хочу, чтобы старая БД осталась на устройстве.Как мне это сделать?

Ответы [ 3 ]

1 голос
/ 12 января 2012

не удаляйте приложение из iTunes и приложение на вашем устройстве, а затем сразу над новой сборкой в ​​iTunes, а затем синхронизируйте, чтобы скопировать новую сборку на ваше устройство. всегда держите [Bundle version string, short] больше для нового, теперь просто обновите старый новым. Я уже сделал это с помощью Testflight.

1 голос
/ 11 января 2012

Это довольно просто - как только вы знаете, где искать. # В вашем AppDelegate вы настраиваете NSPersistentStoreCoordinator - и вам нужно добавить некоторые опции для этого, чтобы он мог обрабатывать автоматическую миграцию:

NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:

[NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption,

[NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption, nil];

NSError *error;
_persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel: [self managedObjectModel]];

if (![_persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType        configuration:nil URL:storeUrl options:options error:&error]) {
      // Handle error
    NSLog(@"Problem with PersistentStoreCoordinator: %@",error);
}

Тогда вам нужно сделать в xCode:

  1. Выберите файл xcdatamodeld
  2. Выберите меню редактора вверху, затем выберите «Добавить версию модели»
  3. Теперь в вашем файле xcdatamodeld есть два (modelname.xcdatamodel и modelname2.xcdatamodel).
  4. Теперь модель name.xcdatamodel имеет зеленую галочку, означающую, что это текущая версия, но нам нужно изменить модель name2.xcdatamodel как текущую версию
  5. Выберите файл xcdatamodeld, затем выберите меню «Вид» вверху, затем выберите «Утилиты», затем выберите «Показать инспектор файлов», показанный в правой части XCode, а затем выберите «Версионную базовую модель данных» - иметь «Текущий» (DropDownList) - выбрать modelname2 (тот, который вы только что сделали в текущей версии, отмечен зеленой галочкой).
  6. Теперь, когда вы устанавливаете эту версию на устройство, которое имеет старую модель - оно автоматически обновит эту модель до новой модели.

сохраните все измененные файлы, а затем, как только вы подготовитесь к развертыванию обновления, вы удалите все промежуточные файлы и просто развернете самые старые и последние модели. наоборот (шаг 4,5,6) для последней до старой модели (текущая)

0 голосов
/ 12 января 2012

Лучший способ обновить специальные сборки - использовать сторонний инструмент под названием TestFlight.Это позволяет вам отслеживать отчеты о сбоях и установки сборок и удаленно, и вам не нужен iTunes.Это здорово, потому что каждое использование вашего приложения просто обновляет приложение, а не удаляет его каждый раз.

Как выпускать обновления для сборок adhoc?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...