簡體   English   中英

應用程序可在 Android 和 IOS 模擬器中運行,但在發布后不可運行

[英]App works in Android and IOS Simulator but not after release

問題

我創建了一個應用程序,它是一個 MQTT 代理客戶端。 當我使用 iOS/Android 模擬器進行開發時,我與代理的連接工作正常。 但是,當我發布 apk 版本時,我的應用無法連接。 它有一個套接字問題(AMQJS0007E 套接字錯誤:未定義)。

我已經嘗試過這個解決方案github 解決方案

截屏

在模擬器中運行的應用程序

[寬演示圖片 ]

應用發布版本運行

[寬演示圖片 ]

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

});

Android:無法向服務器發送數據。 網絡安全策略不允許 CLEARTEXT 通信。

從 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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM