I figured out what caused this. I have SPM packages that are used by both the app target and the watch target. The packaged code had @available(watchOS, unavailable) annotations for the code that was not for watchOS. However that still gets compiled so the symbols are included in the target build. The correct approach is to use the #if !os(watchOS) ... #endif (or #if os() #else #endif) directive for code that must not be compiled for watchOS.
It is also possible to use a general package target in Package.swift with platform specific dependencies, where the dependencies are included with the condition: parameter.
Topic:
App Store Distribution & Marketing
SubTopic:
TestFlight
Tags: