It seems to me that the C74_SYM_LINKER_FLAGS variable in the xcodeconfig gets XCode 5 crashed. Could it be that the maximum length of this config variables changed? There is a lot of data in this variable, I wonder if this could be organized somehow more efficiently ("Flags to enforce some build-time checks for the symbols used while not actually performing a hard link").
The simplest way around the Problem that works for me is to build the project without the additional linker flags (remove them from the configuration), and write the missing links from the error log into the C74_SYM_LINKER_FLAGS configuration variable. Depending on your setup you will need to remove the contents of C74_SYM_LINKER_FLAGS in the MaxMSP SDK distribution. I have my own xcconfig file that overwrites the one from the SDK (specifically this variable).
We have an update SDK coming up soon. In the meantime, if you put the flags in a text file and set the C74_SYM_LINKER_FLAGS to point to that file, you should be able to open Xcode without crashing and even building ;-)
I've updated to the new SDK and although I can now open my older projects without crashing, I can no longer build my projects. I changed my user-defined C74_SYM_LINKER_FLAGS build setting to point to the c74_linker_flags.txt file (my project is an obj-c framework that is "wrapped" by a max external), but Xcode (v5.0.1) complains that the "file was built for unsupported file format"… I don't imagine this should be particularly hard to fix, but I'm a bit stumped. Other than the linker flags build setting, nothing else should have changed in the project, which worked fine in Xcode 4.6.3.
ld: warning: ignoring file /Users/jbmaxwell/Documents/xcode/rubato_git/MusiCog_(optimized)/MusiCog/../../MaxSDK-6.1.1/c74support/max-includes/c74_linker_flags.txt, file was built for unsupported file format ( 0x27 0x2D 0x57 0x6C 0x2C 0x2D 0x55 0x2C 0x5F 0x61 0x64 0x64 0x62 0x61 0x6E 0x67 ) which is not the architecture being linked (x86_64): /Users/jbmaxwell/Documents/xcode/rubato_git/MusiCog_(optimized)/MusiCog/../../MaxSDK-6.1.1/c74support/max-includes/c74_linker_flags.txt
Undefined symbols for architecture x86_64:
"_object_method_imp", referenced from:
-[mcMusiCogController logToMax:] in mcMusiCogController.o
-[mcMusiCogController sendOutputEvent] in mcMusiCogController.o
-[mcMusiCogController finishBang] in mcMusiCogController.o
ld: symbol(s) not found for architecture x86_64
It seems to think I'm trying to link to 32-bit max, but I can't understand why...
Ah, thanks Luigi. That got me much closer (my framework now compiles!).
However, I'm now getting errors trying to build the external: 'MacTypes.h' file not found.
I've seen the various threads on this, and it seemed to be related to older Carbon stuff, and was purported to be solved by building with the 10.7 base SDK. I didn't have that option in my Xcode 5 install, so I copied over the one from Xcode 4.6.3. It does show up in Xcode, and I can select it, but the build error remains! (Well, that's not entirely true; the error shifted slightly from 'Files.h' not found to 'MacTypes.h' not found… ugh…)
Ugh… okay, I've descended to new levels of hackishness and copied my FlatCarbon folder (from 10.7 sdk) into max-includes. It compiles, and the external works, but any thoughts about avoiding this kind of ugliness in future would still be appreciated.