Plain Style Unsupported in a Navigation Item

If you’ve ever seen this Xcode complain about that the plain style for UIBarButtonItem is unsupported in a navigation item you know that it can be a nuisance to narrow down which button item has the unsupported style, especially in larger projects.

Here’s some good news for you. It’s pretty easy to figure out what button is causing the warning. Heres how you do it:

  1. Build the project.
  2. Find the issue in the build log & Show the Report Navigator to Find the Item identifier. A screenshot of Xcode's report navigator with a collapsed log.

  3. Expand the warning.
  4. Copy the buttons identifier from the log. (The identifier will be an alphanumeric string composed of 8 characters broken into three parts. Something like this 7Ad-r9-nwv.) A screenshot of Xcode's report navigator with an expanded log.
  5. Paste into Xcode’s project search.
  6. The offending item will appear in the search results. Click on the search result. A screenshot of a storyboard identifier pasted into Xcode's project-wide search box.
  7. Change the button style to “bordered

This works because Storyboard files are XML files under the hood. Even though Xcode renders them as fancy interfaces, you can actually edit them as plaintext if youd like to. (This is useful when youre trying to fix an issue thats causing Xcode to crash when it opens your storyboard. For example, a merge conflict.)