An answer to this question made me realize that I need to add -lstdc++ to my "Other Linker Flags" to get my project to compile.
If I compile my code directly into my project, it runs fine. If I build it into a framework and include that framework, it complains:
Undefined symbols for architecture armv7:
"std::terminate()", referenced from: ...
Jerry Coffin's comment was the helpful answer. The compiler was detecting the .mm extension and switching to Obj-C++ for the framework build, but had no indication that the build including the framework should also be compiled this way.