Localizable.strings - The data couldn’t be read because it isn’t in the correct format

Solution 1:

  • Use plutil from the Terminal:

you have to run it for each version of the localizable file. E.g

  1. cd into your project root
  2. cd eb.lproj - you can replace this with any localisation you are working with.
  3. plutil -lint Localizable.strings

When you run step 3, you will either be shown an error, telling you what is wrong with your file. Or you will be told the file is OK

Note that plutil output is bad, it seems it always says "Unexpected character at line 1" but above that output, it prints other stuff like missing semicolon on line 121, and that is the real error

Solution 2:

For me, it was missing semi-colons. If you use a tool to generate .strings file, make sure there are no un-escaped quotes that may 'eat' the delimiting semi-colons.