Faux Pas

Faux Pas

Find errors in your iOS or Mac project

Faux Pas inspects your iOS or Mac app’s Xcode project and warns about possible bugs, as well as about maintainability and style issues.

What the Clang Static Analyzer is to your code, Faux Pas is to your whole Xcode project.

Not just any static analyzer

Faux Pas doesn’t just look at your code — it inspects all the elements of your Xcode project together. This allows it to find completely new classes of potential issues.

Read more

Endorsements

I started beta-testing Faux Pas months ago and it was a huge help when developing Overcast.
Marco Arment
Developer of Overcast; previously of Instapaper and The Magazine
Wow, if you develop Cocoa apps you have to check out @fauxpasapp.
Roustem Karimov
Founder of AgileBits, developer of 1Password

Used by many fine companies, such as these

Feature highlights

Latent bugs

Tame latent bugs

Rules like these alert you to issues in your project that might manifest as bugs later down the line:

Resource file errors

Find resource file errors

Are you sure you didn’t make a typo in the filename argument to [UIImage imageNamed:]? Did you remember to update all relevant code when you renamed that file? Are you shipping any resource files that are probably unused?

Localization errors

Find localization errors

Is NSLocalizedString() referring to a key that does not exist? That exists for one locale but not another? Do all of the format specifiers in all the different translations match?

Version control errors

Find version control errors

Is your project referencing a file that is outside the version control root? Or a file that is ignored by the VCS?

Best practices

Learn and enforce best practices

Overriding +initialize in a category? Specifying UIViewController NIB name outside of its implementation? Accessing the address book without specifying an NSContactsUsageDescription?

Code style

Enforce code style

Do you want to enforce the usage of dot syntax whenever possible? Or just use it for properties declared with @property? What about NSNumber literals, boxed expressions, container literals, and object subscripting?

Code Auditing

Get a checklist for code audits

Are you auditing or taking over an existing codebase?

Faux Pas will give you a nice overview of potential issues you might want to pay attention to.

Many different rules

Choose from 111 different rules

Faux Pas comes with 111 rules, categorized using tags like Resources, Style, or Config.

You can choose which rules you want to apply, and configure them to match your preferences.

See all rules
GUI and CLI

Use GUI or CLI

Faux Pas has both a graphical user interface and a command-line interface.

Read more about the CLI
Xcode sidebar

Run during Xcode builds

Invoke Faux Pas in a Run Script build phase in Xcode, and see the emitted diagnostics in Xcode’s Issue Navigator (as well as inline with the code, just like regular compiler errors).

Read more
Diagnostics processing

Connect to external tools

Faux Pas can output diagnostics in JSON or Property List formats.

Process them in any way you want with custom scripts.

You can also run Faux Pas on continuous integration servers.

Configuration

Configure

Select rules by tags, and exclude individual rules. Set general and rule-specific options. Save into JSON configuration files.

Read more
Integrations

Open links in your favorite editor

Faux Pas can open files in several popular code editors, as well as API documentation in either Xcode or Dash.

People seem to like it

Stefan Walkner
@stefanwalkner
to all the #objective-c developers out there: @fauxpasapp is a must. A MUST!
Jim Rutherford
@jim_rutherford
@fauxpasapp app is really great! Worth the price - especially if you inherit code from other agencies.
Chris Maddern
@chrismaddern
Amazing tool to find problems in your Xcode project & code - @fauxpasapp fauxpasapp.com/beta/
Uzair Khan
@UzairKhan31
Wow extremely useful Xcode project code analyzer! Amazing job and a must for every iOS and Mac dev! @fauxpasapp fauxpasapp.com
Richard Buckle
@RichardBuckle
@abizern @fauxpasapp @daveverwer It’s the dog’s bollocks, it really is.