2017-08-05 21 views
0

Android AppをWebRTCとSocket.ioで構築されたビデオチャット機能を備えたPlayストアにリリースする準備が整いました。このアプリは完全にデバッグモードで動作しますが、署名付きapkを作成すると、私のアプリに大きな問題があります。署名されたAndroid APKではなく署名されていないAPKでSocket.ioが失敗する

問題は、署名付きapkを使用しても、ビデオチャットを正常に開始できることです。私は強制的にアプリを終了し、それを再び開く場合、私は再びビデオチャットを開始することはできません。

私のアプリは強制的にアプリケーションを終了した後、ソケットサーバーに接続することができないため、アプリケーションを再開することによって発生したようです。私は警告エラーが

error: xhr poll error android

答えて

0

すべてが今署名APKにうまく機能です。このsocket.ioコールバックのおかげで

socket.on('reconnect_error', (error) => { 
    alert(error); 
}); 

エラーを特定することができますよ。私は問題の一つは、

The server configuration is missing an intermediate CA

それは、これが失敗したSocket.ioコールの背後にある問題だったことが判明している、一般的な問題の検証サーバー証明書の下https://developer.android.com/training/articles/security-ssl.html

て読んだ後、それが動作するようになりました。私はhttps://www.sslshopper.comに行き、私のソケットサーバーのURLとポートを入れました。私のセットアップに問題があると教えてくれました。私は私のソケットサーバーのコードを振り返り、間違ったオプションを指定したことに気付きました。 cacertが間違ったファイルを指しているのを忘れた。 Let's Encryptを使用しています。https://community.letsencrypt.org/t/node-js-configuration/5175 は、正しいオプションを見つけ出すのに本当に役立ちました。

const https = require('https'); 
const fs = require('fs'); 

var options = { 
    key: fs.readFileSync('/path/to/privkey.pem'), 
    cert: fs.readFileSync('/path/to/fullchain.pem'), 
    ca: fs.readFileSync('/path/to/chain.pem') 
} 

https.createServer(options, (req, res) => { 
    res.writeHead(200); 
    res.end('hello world\n'); 
}).listen(8000); 
関連する問題