# Xcode 8: New build settings and analyzer improvements

DevFeed: [Xcode 8: New build settings and analyzer improvements](<https://devfeed.tech/articles/xcode-8-new-build-settings-and-analyzer-improvements-21613.md>)

Original publisher: [Read original article](<http://miqu.me/blog/2016/07/31/xcode-8-new-build-settings-and-analyzer-improvements/>)

Author: Miguel Angel Quiñones

Published: 2016-07-31T20:50:16Z

Content type: article

Language: en

Sources: [Miguel Quinones](<https://devfeed.tech/sources/miguel-quinones.md>)

Topics: [Xcode](<https://devfeed.tech/topics/xcode.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>), [Objective-C](<https://devfeed.tech/topics/objective-c.md>), [Swift](<https://devfeed.tech/topics/swift.md>)

Tags: [build](<https://devfeed.tech/tags/build.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [deprecated](<https://devfeed.tech/tags/deprecated.md>), [false-positives](<https://devfeed.tech/tags/false-positives.md>), [improvements](<https://devfeed.tech/tags/improvements.md>), [objective-c](<https://devfeed.tech/tags/objective-c.md>), [xcode](<https://devfeed.tech/tags/xcode.md>)

## AI overview

This article reviews Xcode 8's new build settings and static analyzer improvements. It covers stricter nullability checking for legacy Objective-C code, deallocation analysis, Swift conditional compilation through SWIFT_ACTIVE_COMPILATION_CONDITIONS, warning-related Swift settings, and the deprecation of EMBEDDED_CONTENT_CONTAINS_SWIFT.

## Source excerpt

I always like to check the new build settings and analyzer improvements of every Xcode release. And this year's main release includes a couple of goodies. Let's check them out! Analyzer improvements From the current Xcode 8 beta 3 release notes: 'Misuse of null' or CLANG_ANALYZER_NONNULL The static analyzer check for nullability violations supports both aggressive and less aggressive levels of checking. The more aggressive level checks for nullability violations in all calls This is a very nice addition for anybody dealing with legacy Objective-C code and audited APIs. So remember to enable the more aggressive setting in your project as it won't be enabled after your upgrade. Most likely you'll find that some APIs were not used correctly, and you'll get more warnings. You should set it to YES instead of YES_NONAGRESSIVE for the most strict checking. Remember you can revert (hopefully temporarily) to YES_NONAGRESSIVE so you can make your code compile while you audit the analyzer warnings again. New setting: CLANG_ANALYZER_OBJC_DEALLOC The clang static analyzer now checks for improper cleanup of synthesized instance variables in -dealloc methods Possibly a minor one, but remember that the analyzer could give you new false positives in legacy code. I couldn't make it trigger in a test project, so I don't really know what it will warn you about. New build settings New setting: SWIFT_ACTIVE_COMPILATION_CONDITIONS "Active Compilation Conditions" is a new build setting for passing conditional compilation flags to the Swift compiler. Previously, we had to declare your conditional compilation flags under OTHER_SWIFT_FLAGS, remembering to prepend "-D" to the setting. For example, to conditionally compile with a MYFLAG value: 1 2 3 #if MYFLAG // do stuff #endif The value to add to the setting -DMYFLAG Now we only need to pass the value MYFLAG to the new setting. Time to move all those conditional compilation values! New settings: SWIFT_SUPPRESS_WARNINGS and SWIFT_TREAT_WARNING