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
- Generate the file with explicit \r\n, not your language's default line separator.
- If you fold long lines (RFC 6350 §3.2, 75-byte limit), fold on a CRLF boundary too.
- 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.