App in China is good, but app in Japan is bad, why? SSL?

Macbook OS Version: macOS 14.7.3 (23H417)
Mobile OS: iOS
Mobile OS Version: iOS 18.6.2
Mobile Manufacturer: Apple
Mobile Model: iPhone 12 Pro Max
Page Type: vue
vue Version: vue2
Packaging Method: Cloud Packaging
Project Creation Method: HBuilderX

Steps:
The backend server is deployed on AWS in Japan with a Japanese IP.

Packaging the APP in HBuilderX and publishing it to the Apple App Store were both successful.

In a subsequent version, we planned to add a push notification feature and selected uniPush V2.

Due to the separation of frontend and backend, the frontend APP implements functions such as registration, login, password change, page content display, and product lists through the server's RESTful APIs.

Test colleagues reported that the APP could not load pages when used in Japan; however, it worked normally in China.

In China:

  • Pinging the server IP and domain from a MacBook was successful.
  • Testing the API with Postman on a MacBook was successful.

In Japan:

  • Pinging the server IP and domain from a MacBook was successful.
  • Testing the API with Postman on a MacBook failed with the error:
    HandshakeException: Connection terminated during handshake

This appears to be an SSL communication failure.

We tested the SSL certificate using www.ssllabs.com/ssltest and received an A+ rating. The certificate should not be an issue.

we deselected uniPush V2, repackaged the APP, and uploaded it to TestFlight.
The result remained the same: the APP content failed to load in Japan, while it worked normally in China.

Expected Result:
Access to the Japanese server APIs should work normally both in China and Japan.

Actual Result:
The APP content fails to load when used in Japan, but works normally in China.

Answered by DTS Engineer in 859383022

It’s unlikely that this is anything to do with the Apple client, but rather something related to your network environment. You’ll need to debug this at the network level. Here’s a rough outline of what I’d do in this case:

  1. Test using a non-Apple client to confirm that it’s a environmental issue. For example, you might install Linux in a VM on your Mac and try it from there.
  2. Move your Mac to a different network to check whether it’s specific to the network you’re testing on. One good option here is to enable Personal Hotspot on your iPhone, join that network with your Mac, and test that way.
  3. Presuming that things are still failing, take a packet trace of the working and failing cases. See Recording a Packet Trace for info on how to do that on Apple devices.
  4. Compare the traces to see where things are failing.
  5. Have that info on hand when you raise the issue with your cloud service provider.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

It’s unlikely that this is anything to do with the Apple client, but rather something related to your network environment. You’ll need to debug this at the network level. Here’s a rough outline of what I’d do in this case:

  1. Test using a non-Apple client to confirm that it’s a environmental issue. For example, you might install Linux in a VM on your Mac and try it from there.
  2. Move your Mac to a different network to check whether it’s specific to the network you’re testing on. One good option here is to enable Personal Hotspot on your iPhone, join that network with your Mac, and test that way.
  3. Presuming that things are still failing, take a packet trace of the working and failing cases. See Recording a Packet Trace for info on how to do that on Apple devices.
  4. Compare the traces to see where things are failing.
  5. Have that info on hand when you raise the issue with your cloud service provider.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

App in China is good, but app in Japan is bad, why? SSL?
 
 
Q