Why does iOS refuse some Wi-Fi and app records?
Because those records ask the phone to change its own configuration or start particular software, and iOS reserves both to itself. The tag is read correctly and the request is simply not honoured, which looks identical to a tag that does not work.
The pattern behind the refusals
The records iOS declines have something in common: they ask the phone to do something to itself rather than to show you something.
Joining a network changes the device's configuration. Launching a named application decides what runs on it. Both are decisions the platform keeps.
Records that merely present information, above all a web address, are handled without difficulty because they end in the user choosing.
Recognising the pattern is more useful than memorising a list, because it predicts how new cases will go.
Wi-Fi credentials
Written to a tag, Wi-Fi credentials configure a network on Android. On an iPhone they are not acted on in the same way.
The tag is not broken and the record is not malformed. Half your audience simply gets nothing useful from it.
For a guest network in a café or an office, that makes a Wi-Fi record a poor sole solution. A short address leading to a page with the details, and a printed code beside it, serves everyone.
Records naming an application
A record naming an Android application expresses a preference for that application. It is an Android mechanism and it means nothing on an iPhone.
So a tag relying on it works on one platform and is inert on the other, while costing bytes on both.
The portable equivalent is a web address that leads somewhere able to offer the right destination to each visitor, which is a server side decision rather than a tag one.
Building for both platforms
Write a web address as the primary content. It is the record type handled most consistently everywhere.
Put the platform specific behaviour on the page, where you control it and can change it later.
Test the outcome on both platforms rather than the write. A record that writes successfully can still be inert, and only tapping reveals it.
And where a record genuinely only works on one platform, decide deliberately whether serving half the audience is acceptable. Usually it is not.
Frequently asked questions
Is my Wi-Fi tag broken?
No. It is written correctly and iOS does not act on it the way Android does, so the tag behaves differently rather than failing.
Can I write a Wi-Fi record that works on iPhone?
Not as the same mechanism. A page holding the details, reached by a web address, works for everyone.
Do app records work on iPhone?
A record naming an Android application is an Android mechanism and has no effect on iOS.
Why does a URL work everywhere?
Because it ends in the user choosing to open something rather than the tag changing the phone. That is the distinction the platform draws.