GeistHaus
log in · sign up

Building and releasing a Xamarin WatchOS app to TestFlight

damian.fyi

I’m working on my third Apple Watch app built using Xamarin. In this post I’m going to describe how I develop and what some of the issues were that I encountered when testing and uploading to the App Store for beta testing. The edit/build/run development loop I build and run and test on the WatchOS simulator when doing general development, since this is the fastest, and I can debug apps on the WatchOS simulator At the time of writing (early June 2020), the released version of Visual Studio for Mac has an error where I can’t run my apps on real devices, so I have switched to the preview channel which contains a fix for the issue. When I’m ready to commit a new feature, I’ll test on a physical watch. To do that I build the iOS host app in release mode, and deploy that to my iPhone (I don’t deploy to the Apple Watch). On the iPhone I open Apple’s Apple Watch app, scroll down to my app: I then force-quit this iOS Apple Watch app by swiping it away, and go back to my app as above, and it shows as updating (assuming I already installed it). 30-120 seconds later, and the app is installed on my watch and I’m ready to test it: Uploading to TestFlight To release to TestFlight I do a full build of the iOS app and then right-click and select Archive for Publishing: Then I fire up Xcode, go to Window->Organizer and tap Distribute App to kick off the upload: A word about certificates: I use fastlane match to manage my certificates and it is a lifesaver. When I want to set up my certificates on a new dev machine I just type fastlane match developer and that is it. Blank complications (not a Xamarin issue) While testing my Apple Watch complications (little icons on the watch face), I saw that some of them were displayed as tinted squares: The images I’d created for an Apple Watch Complication were in the wrong format. The Apple documentation says “Complication images use only the alpha channel of the image.” … I don’t know about you, but this didn’t mean much to me. I fixed this by

0 pages link to this URL

No pages have linked to this URL yet.