It appears the server migration went smoothly, if for no other reason than it took just about the predicted 6 hours to complete. The delay in the iPhone app being able to log onto the site isn't a result of a server migration glitch, or the iPhone app itself, bur rather with the ISP used for Internet access.
ISPs use Domain Name Servers to resolve URL addresses into IP addresses, and those resolutions are cached on Domain Cache Servers instead of having all the ISP's internet traffic go through a full DNS query every time a domain name is invoked by a computer on their network. The DNS servers maintain a database of domain names and their associated IP addresses, which are held in the Cache Server. These database entries or domain names and IP addresses have a limited lifespan on the servers, so that when domain names and IP addresses change, such as when someone does a server migration, the changed information is updated on the DNS servers.
The lifespan of the data is determined by a Time-To-Live (TTL) setting (timestamp or a counter) on the DNS server, and once the preset event count or timespan has elapsed, data is discarded. With TCP/IP packets, the TTL prevents undeliverable data packets from circulating around the Internet forever, which would quickly overwhelm the Internet. With DNS servers, when a caching nameserver queries the authoritative nameserver for a resource record, it will cache that record for the time (in seconds) specified by the TTL. If another computer queries the caching nameserver for the same record before the TTL has expired, the caching server will simply reply with the already cached resource record rather than retrieve it from the authoritative nameserver again. This greatly reduces redundant data from having to be routed all over the Internet.
TTL units used are seconds. An older, yet still common TTL value for DNS is 86400 seconds, which is 24 hours. A TTL value of 86400 would mean that, if a DNS record was changed on the authoritative nameserver, like during a server migration, DNS servers around the world would still be showing the old value (the old IP address) from their cache for up to 24 hours after the change. Anyone trying to access the new server using a cached DNS server that hasn't been updated will be sent to the old IP for that server, because that's where the DNS server thinks the URL address is supposed to go.
The new DNS protocols have TTL numbers that are far smaller, some with a TTL of only 300 (5 minutes) to ensure the most accurate and up-to-date records. The TTL settings are done on an individual basis, so the server administrator can determine how long the DNS servers of the world will retain the cached data, which can be very important for webpages which use dynamic IP addresses or those who use shared servers which can change IP addresses often, but many caching DNS nameservers out there still set their own TTLs regardless of the authoritative records, so it cannot be guaranteed that all downstream DNS servers have the new records, after the TTL has expire.
If you are accessing the Internet using an ISP that has rigid TTLs and won't accept the new per-record TTLs, the result is, not being able to log onto a particular site for hours and hours even after you know it's up and running. But all DNS servers worldwide should be up to speed with their caches within 24-36 hours.