I had Facebook Unity SDK working in my game prototype until I updated to Unity 4.3. After the update build fails on dSYM generation in xCode. Error message:
Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/dsymutil failed with exit code 11
Most notably before the final error message above I get this warning:
ld: warning: instance method 'application:openURL:sourceApplication:annotation:' in category from /Users//Library/Developer/Xcode/DerivedData/Unity-iPhone-duxgtdhujpdgtjbanfxzqinkvybw/Build/Intermediates/Unity-iPhone.build/Debug-iphoneos/Unity-iPhone.build/Objects-normal/armv7/FbUnityInterface.o overrides method from class in /Users//Library/Developer/Xcode/DerivedData/Unity-iPhone-duxgtdhujpdgtjbanfxzqinkvybw/Build/Intermediates/Unity-iPhone.build/Debug-iphoneos/Unity-iPhone.build/Objects-normal/armv7/UnityAppController.o
I investigated this a bit and yes, it seems that both UnityAppController.mm and FbUnityInterface.mm define "openURL" method and that's what xCode doesn't like. I also checked the iOS build that I had worked with on earlier (4.2.x) Unity version and in that build Unity did not define openURL-method in any of its .mm files.
Version Info:
- Facebook Unity SDK Version 4.3.4
- Unity Editor Version 4.3 (Pro)
- Xcode 5.0.2
Changes vs Unity xCode project default configuration:
- Added the frameworks that AdMob requires
- Added linker flag "-ObjC" that AdMob requires (Build Settings -> Other Linker Flags)
I tested linking without the "-ObjC" flag also. Result is the same. Any ideas on how to fix this?
-tomi