On Oct 13, 2015, at 2:34 PM, John Daniel < email@hidden> wrote:
I have never seen an Apple framework with more than a single version. Has anyone else ever seen that? In any event, if this is an embedded framework, then you don’t need all the old versions. Even if you did want to have all the old versions, I am pretty sure you would need to have all the versions in the framework. The only reason to have an “M” vs an “A” is so that an old version of your app can link to the “A”, “B”, etc. versions and new apps can link to the “Current” version. If you only have one version, I think it should probably be “A”, especially if it is embedded. I’ve always thought the versioning was a cool feature of frameworks, but I have never, ever seen it used in the wild.
You raise some interesting points that had not occurred to me. I'm surprised, however, that I have never seen anything in Apple's documentation that suggests you have to use version "A" for an embedded framework if you only have one version in the framework bundle.
The reason I'm up to "M" is that for several years I distributed my application with an installer that installed the framework as a shared framework in /Library/Frameworks/. I included the several most recent versions (J, K, L) because several of my applications use the framework and customers might have a newer version of one product that required version L and an older version of another product that required version J or K. That's what the letter versioning system is for, as I understand it, and the fact that I eventually removed versions A - I never caused any difficulty. Now that I'm switching to embedding the framework (as now recommended by Apple), I only need the one framework version that works with this version of the application. I assumed that I could just leave it labeled "M", which among other things would avoid confusion going forward (although, of course, I can tell the framework versions apart by build version and product version, too).
If apple's rule is that a single embedded framework must always be versioned as "A", that would explain why I can't find any way in Xcode to tell codesign to sign version "M". But I would feel more comfortable if somebody could point me to some official Apple document that says so. Any takers? |