In your target, for all "PreProcessor Macros" insure that you have the exact same define as you used in your code, to whit "FULL_VERSION" (minus the quotes). Expand the box to be absolutely sure that define is there for every configuration too.
You can actually see what the complier is doing by selecting the right icon in the left pane and select the topmost "Build". Find your file being compile, select that line, then click on the far right icon in that line to see the actual compilation command. I have two Preprocessor define that you can see below. Also, select that huge compile line, paste it into a empty TextEdit window, then search for "-D" - you should see -DFULL_VERSION there. if you do not see you you have not properly entered it in the Build commands - wrong target, wrong config etc. I never saw this feature fail in 8 years of using Xcode.
One of my compile lines:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x objective-c -arch i386 -fmessage-length=0 -std=c99 -fobjc-arc … -DUNIVERSAL -DDEBUG=1 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.1.sdk -fexceptions … LTSharing.m -o ...LTSharing.o