My setup:
Mac OS X 10.7.4
Xcode 4.3.2
I have a Mac OS X app that downloads Cocoa embedded downloadable bundles for use as plugins. Plugins are included with the Mac App .appat the standard location ( MyApp.app/Contents/PlugIns) and are downloaded through the standard Cocoa NSBundleAPI. Plugins will be copied to the final Mac app bundle in the standard “Copy Files” build phase with the target value set to PlugIns. I would describe this as a standard Cocoa Plug-in setting for the Mac App.
However, one thing is a little unusual. I use the option -bundle_loaderto associate plugin plugins with public symbols in my main application during build. I originally installed this in Xcode 3 and it always worked fine.
Here, as Xcode describes -bundle_loader:
Bundle Loader
BUNDLE_LOADER
Specifies the executable that will be loading the bundle output file being linked. Undefined symbols from the bundle are checked against the specified executable like it was one of the dynamic libraries the bundle was linked with. [BUNDLE_LOADER, -bundle_loader]
In Xcode 4, I can still create and run the Mac app successfully in the Debug and Release settings . No problems. (I do this by setting the default assembly configuration to Run for debugging or release). Both configurations are built and work just fine.
: Xcode 4 Mac. ( ).
My Archive Action Release (). , . .
, ( ):
Ld /Users/<myusername>/Library/Developer/Xcode/DerivedData/Fluidium-ajljctlwoiqpcodskkcwxrxngeyo/Build/Intermediates/ArchiveIntermediates/Fake/InstallationBuildProductsLocation/Users/<myusername>/Library/Developer/Xcode/DerivedData/Fluidium-ajljctlwoiqpcodskkcwxrxngeyo/Build/Intermediates/ArchiveIntermediates/Fake/BuildProductsPath/Release/Fake.app/Contents/PlugIns/Tabs.fluidplugin/Contents/MacOS/Tabs normal x86_64
cd /Volumes/SystemY/Users/<myusername>/work/fluidium/trunk/Fluidium
setenv MACOSX_DEPLOYMENT_TARGET 10.6
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch x86_64 -bundle -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.6.sdk -L/Users/<myusername>/Library/Developer/Xcode/DerivedData/Fluidium-ajljctlwoiqpcodskkcwxrxngeyo/Build/Intermediates/ArchiveIntermediates/Fake/BuildProductsPath/Release -F/Users/<myusername>/Library/Developer/Xcode/DerivedData/Fluidium-ajljctlwoiqpcodskkcwxrxngeyo/Build/Intermediates/ArchiveIntermediates/Fake/BuildProductsPath/Release -filelist /Users/<myusername>/Library/Developer/Xcode/DerivedData/Fluidium-ajljctlwoiqpcodskkcwxrxngeyo/Build/Intermediates/ArchiveIntermediates/Fake/IntermediateBuildFilesPath/Fluidium.build/Release/TabsPlugIn.build/Objects-normal/x86_64/Tabs.LinkFileList -mmacosx-version-min=10.6 -bundle_loader /Users/<myusername>/Library/Developer/Xcode/DerivedData/Fluidium-ajljctlwoiqpcodskkcwxrxngeyo/Build/Intermediates/ArchiveIntermediates/Fake/BuildProductsPath/Release/FluidApp.app/Contents/MacOS/FluidApp /Users/<myusername>/Library/Developer/Xcode/DerivedData/Fluidium-ajljctlwoiqpcodskkcwxrxngeyo/Build/Intermediates/ArchiveIntermediates/Fake/BuildProductsPath/Release/TDAppKit.framework/TDAppKit -framework Quartz -framework WebKit -framework Cocoa -o /Users/<myusername>/Library/Developer/Xcode/DerivedData/Fluidium-ajljctlwoiqpcodskkcwxrxngeyo/Build/Intermediates/ArchiveIntermediates/Fake/InstallationBuildProductsLocation/Users/<myusername>/Library/Developer/Xcode/DerivedData/Fluidium-ajljctlwoiqpcodskkcwxrxngeyo/Build/Intermediates/ArchiveIntermediates/Fake/BuildProductsPath/Release/Fake.app/Contents/PlugIns/Tabs.fluidplugin/Contents/MacOS/Tabs
Undefined symbols for architecture x86_64:
"_OBJC_IVAR_$_FUPlugIn.aboutInfoDictionary", referenced from:
-[FUTabsPlugIn aboutInfoDictionary] in FUTabsPlugIn.o
"_OBJC_CLASS_$_FUPlugIn", referenced from:
_OBJC_CLASS_$_FUTabsPlugIn in FUTabsPlugIn.o
"_OBJC_METACLASS_$_FUPlugIn", referenced from:
_OBJC_METACLASS_$_FUTabsPlugIn in FUTabsPlugIn.o
"_FUTabControllerProgressDidStartNotification", referenced from:
-[FUTabsViewController startObserveringTabController:] in FUTabsViewController.o
-[FUTabsViewController stopObserveringTabController:] in FUTabsViewController.o
"_FUTabControllerProgressDidChangeNotification", referenced from:
-[FUTabsViewController startObserveringTabController:] in FUTabsViewController.o
-[FUTabsViewController stopObserveringTabController:] in FUTabsViewController.o
"_FUTabControllerProgressDidFinishNotification", referenced from:
-[FUTabsViewController startObserveringTabController:] in FUTabsViewController.o
-[FUTabsViewController stopObserveringTabController:] in FUTabsViewController.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
: , Mac, " ":
: NO ( , )
, : NO ( , )