Realm モバイル プラットフォームのチュートリアル (リンク) を実行しました。Swift タスク アプリを作成します。
ローカル Mac でアプリとサーバーを正しく動作させることができました。テーブルビューにタスクを追加できました。
次に、DigitalOcean で Ubuntu 16.04 ドロップレットを作成しました。サーバーを稼働させることができ、Realm ダッシュボードを表示できました。
問題は、新しいサーバー IP アドレス (ubuntu インスタンス) でアプリを実行すると、「タスクの追加」ポップアップが表示されますが、アプリのテーブルビューにタスクが追加されないことです。
次のコードは、db にタスクを追加します。
try! items.realm?.write {
items.insert(Task(value: ["text": text]), at: items.filter("completed = false").count)
}
ローカル マシンでコードを実行すると、値が挿入されますがinsert
、リモート サーバーを使用すると行がヒットすることはありません。
Realm config を新しい URL に設定する場所は次のとおりです。
let configuration = Realm.Configuration(
syncConfiguration: (user, URL(string: "realm://128.199.119.xxx:9080/~/realmtasks")!)
)
configuration.yml
Realmファイルをリモート サーバーにデプロイするときに、Realm ファイルを更新する必要がありますか? はいの場合、誰かがconfiguration.yml
例を持っているか、ファイルをセットアップするために何をする必要がありますか?
チュートリアル ビデオでは、info.plist を更新する必要があることが言及されています。以下の info.plist のエディションは、展開されたサーバーにアクセスするアプリとアプリ ストアのアプリで同じですか?
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
の結果は次のcat /var/log/realm-object-server.log
とおりです。
2016-10-29T03:09:06.501Z - info: sync-server: Connection[5]: Connection from 127.0.0.1:58822
2016-10-29T03:09:06.631Z - info: sync-server: Connection[5]: Received: CLIENT(protocol_version=15, client_info_size=2, client_info='{}')
2016-10-29T03:09:06.788Z - info: sync-server: Connection[5]: Session[1]: Session initiated (session_ident=1).
2016-10-29T03:09:06.789Z - info: sync-server: Connection[5]: Session[1]: Received: BIND(server_path=/72c5a/realmtasks, signed_user_token='...xxm/7UjDkuEqQ==', need_file_ident_pair=0)
2016-10-29T03:09:06.789Z - info: sync-server: Connection[5]: Session[1]: Received: IDENT(server_file_ident=21314, client_file_ident=1, client_file_ident_secret=1477, scan_server_version=2, scan_client_version=2, latest_server_version=2, latest_server_session_ident=1643)
2016-10-29T03:09:17.069Z - info: sync-server: Connection[5]: Session[1]: Session terminated (session_ident=1).
2016-10-29T03:09:17.070Z - info: sync-server: Connection[5]: Connection closed by client: End of input
2016-10-29T03:09:26.769Z - info: sync-server: Connection[6]: Connection from 127.0.0.1:58866
2016-10-29T03:09:26.895Z - info: sync-server: Connection[6]: Received: CLIENT(protocol_version=15, client_info_size=2, client_info='{}')
2016-10-29T03:09:27.053Z - info: sync-server: Connection[6]: Session[1]: Session initiated (session_ident=1).
2016-10-29T03:09:27.053Z - info: sync-server: Connection[6]: Session[1]: Received: BIND(server_path=/a4fdec5a/realmtasks, signed_user_token='...K0k7mw==', need_file_ident_pair=0)
2016-10-29T03:09:27.053Z - info: sync-server: Connection[6]: Session[1]: Received: IDENT(server_file_ident=21094, client_file_ident=1, client_file_ident_secret=14907, scan_server_version=2, scan_client_version=2, latest_server_version=2, latest_server_session_ident=164553)
オブジェクト サーバーが実行されており、タスク テーブルとタスク リスト テーブルを確認できますが、テーブルにレコードを書き込むことができません。
私がチェックするauth.log
と、次のようになります
Nov 1 10:53:22 digitalocean sshd[13684]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=221.229.172.111 user=root
Nov 1 10:53:49 digitalocean sshd[13701]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=221.229.172.111 user=root
Nov 1 10:53:50 digitalocean sshd[13701]: Failed password for root from 221.229.172.111 port 43992 ssh2
Nov 1 10:53:55 digitalocean sshd[13701]: message repeated 2 times: [ Failed password for root from 221.229.172.111 port 43992 ssh2]
Nov 1 10:53:55 digitalocean sshd[13701]: Received disconnect from 221.229.172.111 port 43992:11: [preauth]
Nov 1 10:53:55 digitalocean sshd[13701]: Disconnected from 221.229.172.111 port 43992 [preauth]
Nov 1 10:53:55 digitalocean sshd[13701]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=221.229.172.111 user=root