Why iOS Contacts rejects vCards with LF-only line endings

vCard 3.0/4.0 requires CRLF line endings. A file using bare LF instead breaks silently in iOS Contacts — the RFC rule, why it fails, and how to fix it.

If a generated vCard imports fine on Android and desktop Contacts apps but silently fails — or imports with garbled fields — on iOS, the most common cause is the line ending: the file uses LF (\n) instead of CRLF (\r\n).

The RFC rule

In practice this means every property line — and every folded continuation line — must end in \r\n, never a bare \n. Most non-Apple tooling is lenient about this; iOS Contacts is not.

How to fix it

  1. Generate the file with explicit \r\n, not your language's default line separator.
  2. If you fold long lines (RFC 6350 §3.2, 75-byte limit), fold on a CRLF boundary too.
  3. Verify with a hex dump, not a text editor — most editors normalize line endings on open, which hides the bug you're trying to find.
Does this also apply to vCard 4.0?

Yes — vCard 4.0 (also RFC 6350) carries the same line-folding rule forward from 3.0. The CRLF requirement is not version-specific.

Does Android or desktop Contacts care about the line ending?

Most Android and desktop contact importers tolerate a bare LF. iOS Contacts is the strict one — which matters because it is also the platform most likely to silently drop the rest of the file instead of showing an error.