Это проблема в настройках Sync Services. Это означает, что вы не объявили, какие объекты необходимо синхронизировать. Я предлагаю сравнить ваш подпроект SyncSchema (для вашего настольного приложения) с тем, который включен в проект SampleDesktop.
обновление
Я все это проверил, но безрезультатно. Я использую версионную маму, это будет иметь значение? В моих ManagedObjectModels я должен использовать название версии или коллекции? (мама или мама?) Спасибо, я почти у цели!
Нет, схема должна указывать на вашу последнюю модель. Вы уверены, что он правильно указывает на это? Это может быть одним из самых сложных моментов. Включаете ли вы модель в комплект схемы или делаете на нее ссылку?
обновление
Во-первых, пожалуйста, поместите эти обновления в свой вопрос, раздел комментариев действительно не предназначен для них.
Хорошо, справился с этой проблемой. Синхронизация начинается сейчас, я получаю «не удалось зарегистрировать клиента, потому что: клиент с именем Xmac хочет синхронизировать нераспознанную сущность с именем: X.Entity». Это, к сожалению, происходит со всеми моими сущностями.
Эта ошибка означает, что ваша схема синхронизации все еще не полностью действительна. Ваш настольный клиент синхронизируется?
Можете ли вы увидеть его данные в синхронизаторе?
Если это так, значит, ваше клиентское описание в демоне неверно. Если он не синхронизируется, то сначала решите это, так как кажется, что ваш пакет SyncSchema по-прежнему неверен. Я предлагаю попробовать сравнить его с приложением sampleDesktop, которое включено в проект.
обновление Syncrospector
Хорошо, я вижу его в syncrospector, но все равно получаю нераспознанную ошибку. Что вы подразумеваете под моим клиентом, описание в Daemon неверно? Спасибо.
В syncrospector я предполагаю, что вы видите все ваши сущности и данные?
В демоне есть clientDescription.plist. Этот список описывает, с какими данными будет синхронизироваться демон. Этот список должен быть обновлен (так как по умолчанию относится к образцу приложения и т. Д.), Чтобы ссылаться на ваши структуры данных, как это делает ваше настольное приложение.
В самом ближайшем будущем эта часть будет перемещена в плагин, чтобы вы не модифицировали демона напрямую. Ожидайте увидеть обновления самого проекта в течение следующих нескольких недель. Но пока (и будет многократно использоваться), измените plist внутри демона, и вы должны быть готовы к синхронизации.
обновление ZAssert
Эта строка раскручивается в:
BOOL success = [[ISyncManager sharedManager] registerSchemaWithBundlePath:path];
NSAssert(success, @"Failed to register sync schema");
Это может быть вызвано несколькими причинами:
- Ваш путь ноль, проверьте это в отладчике
- Что-то не так с вашей схемой синхронизации.
Какие еще отладочные комментарии вы видите?