diff --git a/src/core/iomgr/udp_server.c b/src/core/iomgr/udp_server.c
index 16482c08f72220d5555d93bb974740533e510621..6429c38b289a97bd34edf80bb567f77cc26c328b 100644
--- a/src/core/iomgr/udp_server.c
+++ b/src/core/iomgr/udp_server.c
@@ -235,8 +235,10 @@ static int prepare_socket(int fd, const struct sockaddr *addr, int addr_len) {
   rc = setsockopt(fd, IPPROTO_IP, IP_PKTINFO, &get_local_ip,
                   sizeof(get_local_ip));
   if (rc == 0 && addr->sa_family == AF_INET6) {
+#if !TARGET_OS_IPHONE
     rc = setsockopt(fd, IPPROTO_IPV6, IPV6_RECVPKTINFO, &get_local_ip,
                     sizeof(get_local_ip));
+#endif
   }
 
   if (bind(fd, addr, addr_len) < 0) {