Skip to content

How to resolve Couldn't parse property list because the input data was in an invalid format in iOS app

Problem

When developing an iOS app with localization, you might encounter the following error:

/Users/xxx/XcodeProjects/yyy/zh-Hans.lproj/Localizable.strings:1:1: read failed: Couldn't parse property list because the input data was in an invalid format

Environment

  • iOS programming
  • XCode 11.3
  • Swift 5

Debug

To debug this issue, open the terminal app in the root directory of your project and run the following command:

Terminal
plutil -lint Localizable.strings

Check the output of the plutil tool and follow its suggestions to resolve the issue.

Possible Reasons

  • Missing semi-colon characters.
  • Invalid white space in the file.
  • Invalid characters in the file.
  • Git merge conflict characters in the file.

Solution

  1. Ensure the strings file is always named Localizable.strings.
  2. Remove all unused strings from the Localizable.strings file.
  3. Validate the file using the plutil tool as described above.

Summary

The “Couldn’t parse property list because the input data was in an invalid format” error in iOS apps is often caused by issues in the Localizable.strings file, such as missing semi-colons, invalid characters, or merge conflicts. By using the plutil tool to debug and ensuring proper formatting, you can resolve this issue effectively. Always double-check your localization files for consistency and correctness.

Final Words + More Resources

My intention with this article was to help others who might be considering solving such a problem. So I hope that’s been the case here. If you still have any questions, don’t hesitate to ask me by email: Email me

Here are also the most important links from this article along with some further resources that will help you in this scope:

Oh, and if you found these resources useful, don’t forget to support me by starring the repo on GitHub!