"Narrator: He was doing something really obvious." I copied the run script from another xcode project but didn't read all of the instructions here:
https://kotlinlang.org/docs/multiplatform-mobile-understand-project-structure.html#ios-application. Cloned the Kotlin repo, found the embed task, and noticed that if the framework is static that the task is actually disabled. "OMG, does this only work for dynamic frameworks? That's crazy!" So, I went digging into the doc just to make sure I hadn't missed anything, and I'd missed the obvious thing. Adding the linker flag and search paths.