Published: Oct 2, 2024
Since the Series 4 was introduced in 2018, all new Apple Watches have been arm64_32. The last Apple Watch to be armv7k was the Series 3.
Source: https://forums.developer.apple.com/forums/thread/759363
What is arm64_32? It’s a 64 bit operating system that runs on 32 bit pointers.
When you test on the watchOS simulator, you’re typically going to be testing with 64-bit pointers, so you’ll get a 64 bit Int when testing in sim and a 32 bit Int when testing on hardware.
Something as simple as
print(String(Int(Date.now.timeIntervalSince1970 * 1000)))
can work fine in the simulator but causes a runtime crash on hardware. Be mindful of your use of Int and CGFloat types when deploying code to the Apple Watch.
Here’s the output of Int.max on each platform:
Simulator | Hardware (oh no!) |
---|---|
|
|