uni-app HBuilderX开发iOS的APP在日本使用页面打不开 在国内APP使用正常
uni-app HBuilderX开发iOS的APP在日本使用页面打不开 在国内APP使用正常
操作步骤:
- POST地址
https://www.k2stone.jp/shopapi/push/register - Body入参
{ "cid":"963a10a9dbfe51a8fe9cfa5121c09d6d", "device_token":"963a10a9dbfe51a8fe9cfa5121c09d6d", "platform":"ios" } - 国内,在Macbook上ping 服务器地址和域名,通;
- 国内,在Macbook上postman测试接口,通;
- 日本,在Macbook上ping 服务器地址和域名,通;
- 日本,在Macbook上postman测试接口,不通;错误提示为
这看上去是SSL通讯不成功, 通过www.ssllabs.com/ssltest 测试SSL,得到A+。证书应该没有问题。HandshakeException: Connection terminated during handshake
预期结果:
- APP在国内外,都正常使用。
- 即在国内外访问日本服务器的接口,都需要正常。
实际结果:
- APP在日本使用页面打不开;在国内APP使用正常。
bug描述:
- 操作步骤:
- 后台服务器部署在日本AWS,日本IP。
- 在HBuilderX中打包APP,上架Apple App Store,均成功。
- 在后续版本,准备加入消息推送功能,勾选uniPush V2.20,并配置dcloud控制台相关参数,云打包后上传TestFlight测试,通过dcloud控制台发送消息,测试iPhone消息提醒成功。
- 由于前后端分离,前端APP通过服务器restful接口实现注册、登录、改密码、显示页面内容、商品列表等功能。
- 测试同事反馈,APP在日本使用页面打不开;在国内APP使用正常。
图片

信息整理
| 项目 | 信息 |
|---|---|
| 产品分类 | uniapp/App |
| PC开发环境操作系统 | Mac |
| PC开发环境操作系统版本号 | macOS 14.7.3 (23H417) |
| HBuilderX类型 | 正式 |
| HBuilderX版本号 | 4.76 |
| 手机系统 | iOS |
| 手机系统版本号 | iOS 18 |
| 手机厂商 | 苹果 |
| 手机机型 | iPhone 12 Pro Max |
| 页面类型 | vue |
| vue版本 | vue2 |
| 打包方式 | 云端 |
| 项目创建方式 | HBuilderX |
更多关于uni-app HBuilderX开发iOS的APP在日本使用页面打不开 在国内APP使用正常的实战教程也可以访问 https://www.itying.com/category-93-b0.html
检查了一大圈
客户端与服务器的网络连接,用ping IP地址
DNS解析,用ping 域名
443端口访问,用Test-NetConnection -ComputerName IP地址 -Port 443
SSL证书链完整度和协议安全性,openssl s_client -connect 域名:443
服务接口访问,在PC机上用Postman,在iPhone上用API Client
服务器宝塔面板配置,关闭面板防护
uniPush代码影响,注释代码
逐一验证,以上都不是根本原因
iPhone真机测试,控制台追踪,发现APP第一次运行时,会提示是否使用无线局域网还是蜂窝网络,即使点了使用两者,网络仍然要等一小会才好使,我就在代码中加上了网络状态监测和页面加载多次重试的代码,首页就可以显示出来了。
至于为什么APP第一次运行,网络中断,我也不清楚原因。
更多关于uni-app HBuilderX开发iOS的APP在日本使用页面打不开 在国内APP使用正常的实战教程也可以访问 https://www.itying.com/category-93-b0.html
这是一个典型的网络环境差异导致的SSL/TLS握手失败问题。从错误信息HandshakeException: Connection terminated during handshake来看,问题出现在SSL握手阶段。
可能的原因和解决方案:
-
TLS版本兼容性问题 iOS设备在日本网络环境下可能使用了不同的TLS版本。建议在服务器端配置支持TLS 1.2及以上版本,确保与iOS系统的兼容性。
-
证书链完整性 虽然SSL Labs测试显示A+,但可能存在中间证书缺失的问题。检查服务器证书链是否完整包含根证书和中间证书。
-
SNI(服务器名称指示)配置 确保服务器正确配置了SNI,特别是在使用CDN或负载均衡器的情况下。
-
uni-app网络请求配置 在
manifest.json中检查网络相关配置:"app-plus": { "networkTimeout": { "request": 30000 } }

