After 7 hours, successfully managed to get my first deployment on the watch. Definitely not something you expect from apple, in fact I cussed them out the whole way through. But here's what I did
Mostly followed entouss's guide and most advice is reiterated from him + some of my experiences
Before you do anything, make sure
Apple Watch is fully charged (this WILL take a long time)
It has a passcode
You might get the bright idea to remove the passcode and put it on charger to prevent lock. Keep it on.
Pre-pair
Make sure you're on a 2.4 ghz network (mobile hotspot or create guest network on router)
Connect all devices to that network
Shutdown all devices and start them up 1 by 1 to start from a clean slate
Get it to show up in Xcode devices
If your apple watch is already in the xcode device list, DO NOT unpair it as it may not show back up again without large hassle
WATCH for "trust this device" messages on your apple watch.
If you accedentally press no, or press the crown while the dialog is on, you gonna have to disconnect iPhone, shutdown mac, shutdown iPhone, shutdown watch, and restart from clean slate
Once you restarted make sure they're once again all connected to the same network
The trust device doesn't work / is inconsistent when you don't have a password (maybe I did it wrong idk)
If still nothing shows up in xcode, you can view logs with "log show --predicate 'process == "remotepairingd" OR process == "remoted""
You can also kill it by "sudo pkill -9 remotepairingd"
Credits to Bar0kul on reddit under this post: "I think I found a reliable way to sync Apple Watch to XCode in development mode for debugging and logging" for the log command
ACTUALLY Connecting to Watch
Oh now it shows up? Hooray! You're not even close to deploying yo shit. Thanks apple!!!
Now it shows, make sure NOT to un-pair your device
At this point just hope the watch connects ngl
Best you can do is re-verify all devices are on the same network, iPhone cable connected to mac, iPhone wifi and bluetooth all on
If you have multiple phones use the "main" phone not the secondary phone
watch is ON throughout the connecting process
Now just keep trying till it connects
Sync Cache Symbols
At first, it will get stuck on 0% or 4% for a long time, just let it do its thing.
It will use a LOT of battery, up to 50% (for my series 6 at least)
It takes up to 2 hours.
Keep the watch on your wrist. You can let it sleep while its on your wrist as it'll remain unlocked
If your watch is on charger, you'll need to keep it awake somehow. I found the best way is to open the camera app on the watch to mirror iPhone camera which keeps it on until the phone has slept or when the watch reaches 5%
Its much more convenient to charge to 100% and leave on wrist than charger method
Make sure Mac is also open the whole time
Hope this helps someone!
Although I understand the motivation to keep the watch small and seal gaps, sometimes a physical cable and data interface is the best way to go. Though we know apple will never go for it, so I urge for them to at least give us more logging. We're all developers here, not end users. If you're going to leave us with such a volatile interface, let us at least have a bit more insight into how to handle our issues.
Topic:
Developer Tools & Services
SubTopic:
Xcode
Tags: