2014-12-19 3 views
1

Моя цель: получить https://github.com/couchbaselabs/ToDoLite-iOS синхронизацию с сервером Couchbase и шлюзом синхронизации по localhost, а не по умолчанию демо-URL.Приложение Couchbase Mobile (Sync Gateway) Приложение TODOlite не реплицируется; жалуется _facebook не существует

Я бегу синхронизации шлюз, как так: bin/sync_gateway -url http://localhost:8091

И тогда единственное, что я изменил в примере:

-#define kSyncGatewayUrl @"http://demo.mobile.couchbase.com/todolite" 
+#define kSyncGatewayUrl @"http://localhost:4984/sync_gateway/" 

И когда я бегу

Error: Error Domain=CBLHTTP Code=404 "404 not_found" UserInfo=0x7ff11941fb50 {NSURL=http://localhost:4984/sync_gateway/_facebook, NSLocalizedFailureReason=not_found, NSLocalizedDescription=404 not_found} 

Как исправить это?

ответ

2

Я решил. Причина в том, что я побежал sync_gateway без поддержки поддержки регистрации в Facebook.

Обычно это делается в файле config.json. Фактически, this configuration file was supplied in ToDoLite all along.

Очень важно запустить этот файл конфигурации sync_gateway. README на самом деле говорит об этом, но в свободной и случайным образом ...

cd ToDoLite-iOS 
sync_gateway -url http://localhost:8091 sync-gateway-config.json 

NB: Я полагаю, что выше sync_gateway был сделан доступным через $PATH. Во всяком случае, это хорошая идея.

Кроме того, я не обратил внимание на dbname. Так что вам нужно заменить

#define kSyncGatewayUrl @"http://demo.mobile.couchbase.com/todolite"` 

с

#define kSyncGatewayUrl @"http://localhost:4984/todos" 

Итак, что полная последовательность шагов, чтобы получить его работу ?:

  1. Если вы хотите протрите все на сервере, rm -rf Library/Application\ Support/Couchbase и начните сначала. Homebrew cask скрывает эту настройку где-то в другом месте, где ее сложно сбросить, поэтому рекомендуется установить вручную.

  2. Установка Couchbase

  3. лицо, вручающее судебные документы
  4. Настройте учетные данные для входа, если новую установку; иначе просто войдите

  5. Создайте ведро (базу данных) с именем todos на кластере. Это dbname, используемый TODOLite.

  6. Запуск шлюза синхронизации. Не забудьте передать URL репликации и конфигурационный файл JSON. bin/sync_gateway -url http://localhost:8091 sync-gateway-config.json; держать синхронизации шлюз работает

  7. В TODOLite AppDelegate.m, изменить kSyncGatewayUrl: #define kSyncGatewayUrl @"http://localhost:4984/todos". Обратите внимание, что имя базы данных необходимо!

  8. (необязательно) Доступ к интерфейсу администратора шлюза синхронизации осуществляется путем перехода на http://localhost:4985/_admin/db/sync_gateway/sync. Здесь вы можете настроить функцию синхронизации.


В случае, если вам интересно, где эти номера портов пришли, проверить

+0

Хорошее объяснение! Любопытно, что вы строите и прецеденты? Отправка сообщения электронной почты hokshunpoon.me – sweetiewill

0

по умолчанию URL удаленной синхронизации будет определяться в разных файлах в зависимости от версии проекта вы загружаете (IOS, Android, PhoneGap, и движение). Чтобы найти подходящую строку для изменения, просто выполните поиск по вашему проекту по URL-адресу «http://demo.mobile.couchbase.com/todolite» и замените его URL-адресом вашей новой базы данных шлюза синхронизации.