More trial and error has led me to a solution. It seems to be a problem with OpenCV 2.4.2, however, it seems resolved in OpenCV 2.4.3-rc.
My steps, in a nutshell,
- The problem does seem to be related to the binary incompatibility flags for the virtual destructor methods.
- I had to download 2.4.3 release candidate from Github and compile per the Readme instructions in the ios/ folder. (If you're on Mac OSX, make sure you're running the right version of CMake)
- Modify the build_framework.py script to consume the output of step 2 to build opencv2.framework (the original script was expecting the library binaries and headers to be in different paths). Specifically, I just used
put_framework_together(src,dest)
and hardcoded the paths to the binaries and headers. - Followed the library linking steps in the iOS instructions to add the framework to my Xcode project.