flutter 开发的 APP 安装到真机后接口请求异常

用 dio 请求后端接口

在模拟器一切正常,到真机提示如下:
DioExceptionType.connectionError The connection errored:Connection failed This indicates an error whichmost likely cannot be solved by the library.

是 dio 的问题吗?接口是 http://ip:port 的形式


已经在 info.plist 里申明了 http 放行
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
flutter 开发的 APP 安装到真机后接口请求异常


更多关于flutter 开发的 APP 安装到真机后接口请求异常的实战教程也可以访问 https://www.itying.com/category-92-b0.html

4 回复

真机是正式打包还是调试开发模式。调试模式没问题。但是正式打包 ios 不管你是不是开了这个允许安全都无效。因为你这个是 app 允许 http ,而 ios 系统强制需要 https 会被 ios 屏蔽。

更多关于flutter 开发的 APP 安装到真机后接口请求异常的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


解决了,网上搜的 18 年的一个文章,说是 ios 的一个 bug ,但是很少出现,需要在设置-蜂窝网络-修改下任意一个 app 的连接选项即可,试了后果然可以了

release 模式也可以 http ,生命 NSAppTransportSecurity 和 NSAllowsArbitraryLoads 即可

针对您提到的Flutter开发的APP安装到真机后接口请求异常的问题,这里有几个可能的解决方向和检查步骤:

  1. 网络权限检查:首先确认APP在AndroidManifest.xml(Android)或Info.plist(iOS)中已正确配置了网络访问权限。对于Android,通常需要<uses-permission android:name="android.permission.INTERNET"/>

  2. API URL正确性:检查请求的API URL是否正确,包括协议(http/https)、域名、端口和路径。开发环境与生产环境可能有所不同,确保使用的是正确的环境配置。

  3. SSL/TLS证书问题:如果API使用HTTPS,检查服务器SSL/TLS证书是否有效且被设备信任。自签名证书在真机上可能会导致问题。

  4. 跨域资源共享(CORS):如果后端服务部署在不同的域或端口,确保服务器配置了适当的CORS策略以允许来自您APP的请求。

  5. 调试与日志:利用Flutter的调试工具和日志输出(如print语句或使用Flutter的Log库)来捕获和分析接口请求的详细日志,这有助于定位问题。

  6. 真机环境差异:考虑真机与模拟器/开发机的环境差异,如操作系统版本、网络设置等,这些可能影响接口请求。

  7. 后端服务状态:确认后端服务正常运行,且没有IP白名单、防火墙等限制阻止真机访问。

希望这些建议能帮助您解决问题。如果问题依旧,可能需要更详细的错误日志来进一步分析。

回到顶部