I have a framework that I am trying to embed in an application.
The framework uses cmake to build itself, and I can rebuild as needed to fix this problem.
When I include the library in my application, with Code Sign On Copy checked, the step fails with a file not found. Tracing the output, it is trying to sign a library at Versions/A. The library should have a version of 1.10.0, and when doing otool it reports the version numbers as 1.10.0.
So, where does xcode get that A for the version when trying to sign the library? What can be changed so it has the right version number?
did you ever find a solution to this problem?
While Xcode could handle this better, and the bug referenced above (r. 37784591) is still open, the best solution to this problem is to build your Mac framework with a single version called A
. We recently published Placing Content in a Bundle, where the Support a Single Framework Version on macOS section is crystal clear about this:
best practice is to use a single version named
A
.
Moving forward support for multiple versions, and non-standard version numbers, is going to get less and less reliable. I strongly encourage you to update your frameworks to follow this best practice. And if you’re working with a framework from another third-party developer, ask their support channel why they are not doing this.
Share and Enjoy
—
Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"