应用程序在Android和iOS模拟器中可用,但在发布后不起作用 [英] App works in Android and IOS Simulator but not after release

查看:30
本文介绍了应用程序在Android和iOS模拟器中可用,但在发布后不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问题

我创建了一个App,它是一个MQTT代理客户端。当我使用iOS/Android模拟器进行开发时,我与Broker的连接工作正常。然而,当我发布一个apk版本时,我的应用程序无法连接。它有套接字问题(AMQJS0007E套接字错误:未定义)。

我已经尝试过此解决方案github solution

屏幕截图

应用程序在模拟器中运行

[]

正在运行的应用程序发布版本

[]

this.client.connect({
    timeout: 10,
      onSuccess: () => {
        this.isConnected = true;
    
        onSuccessHandler();
      },
    
      useSSL: false,
    
      onFailure: this.onFailure,
    
      reconnect: true,
    
      keepAliveInterval: 20,
    
      cleanSession: true,

});

推荐答案

Android:无法向服务器发送数据。明文通信至 网络安全策略不允许。

从Android 9(API级别28)开始,禁用明文支持 默认情况下。*

您需要修改才能添加新文件res/xml/network_security_config.xml

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">test.mosquitto.org</domain>
    </domain-config>
</network-security-config>

然后修改您的AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest ...>
    <uses-permission android:name="android.permission.INTERNET" />
    <application
        ...
        android:networkSecurityConfig="@xml/network_security_config"
        ...>
        ...
    </application>
</manifest>

这篇关于应用程序在Android和iOS模拟器中可用,但在发布后不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆