My wife and I are getting a ridiculous amount of same-exchange spam calls (same area code and first three digits) and are looking for a solution. One promising solution is outlined in this apple discussion -- create a .vcf file to establish a contact containing all 10,000 numbers (-0000 ... -9999) in that exchange and then block that contact. A nuclear option so to speak.

I've read that having a contact with several hundred numbers in it can be slow to open, on the order of several seconds to open for one containing 200 contacts. But it isn't clear if "open" in that context refers to opening it in the Contacts app to view or loading it into memory to check when a call comes in.

We each have an iPhone 6 and just upgraded to iOS 11 via wipe and restore, and we haven't experienced much slowdown so far other than a slight (fractions of a second) degradation in response here and there.

What kinds of performance issues should we expect if we take this route?

Edit And specifically is there any danger of bricking our phones or otherwise crashing if we use this? There is some discussion in the above link of the contacts app no longer opening.

Another option is to create say 20 contacts each with 500 numbers, or 100 contacts each with 100 numbers, or something like that. But I don't know if there is a larger performance hit for breaking it up that way vs having them all in one.

Why the nuclear option? We moved away from that location ten years ago but kept the numbers for convenience, we do not receive any calls from so-called "neighbors" out there, and I would prefer not to use a call-blocking app due to privacy concerns, so this seems like a perfect solution. (second only to nuking the spammers from orbit)

Edit 2 I am currently experimenting with creating the contacts manually with 500 numbers per contact, for a total of 20 contacts. It only took a few minutes to generate and import four contacts with 2,000 numbers total once the spreadsheet was set up, and that included emailing the contacts to my phone and importing them there.

Solution I'm marking Matt's answer as the solution because he pointed me in the direction of the app WideProtect. I installed it a couple days ago and so far there have been no calls.

Initially I was avoiding installing an app due to privacy concerns, but after reading the CallKit API I was persuaded to give it a shot. The app does require access to your Contacts if you want to allow numbers from your contacts through the block (which seems opposite from what the CallKit API says...) but I got around that by blocking all ranges except the range my wife's number is in. For example, if my wife's number is 123-555-3859 I would block 123-555-0XXX, 123-555-1XXX, 123-555-2XXX, 123-555-4XXX, etc. Skipping 3XXX. That gives only a 10% chance scammers will pick the range that includes my wife's number, so that is an acceptable tradeoff to me AND it avoids giving WideProtect access to my contacts list. If it becomes unbearable I can block 123-555-30XX..123-555-37XX and 123-555-39XX giving only a 1% chance they randomly pick the range. So that works great for me and preserves privacy.

Many thanks to Matt for pointing me down that path. This looks like a great solution.

  • I wondered for a bit how to even test this. I suppose the risk could be two fold - that you have sync issues between devices if you sync that large contact with iCloud or other cloud service and cause a crash. Then there's the idea that the code might iterate over phone numbers thinking you would only have a handful or dozen items and that would slow down an operation or an app?
    – bmike
    Mar 3, 2018 at 17:17
  • @bmike I'm no Apple expert (we use Windows but own iPhones) but those are the kinds of things I'm wondering. I'm probably going to try it but I'm trying to find out if it will brick my phone or something crazy like that. So far I can't find any info on the # limit per contact, only a size limit. Which I guess I could impute a rough estimate of #s allowed, but without knowing the base size of a contact it's a wild guess at best.
    – Dave
    Mar 3, 2018 at 17:23
  • @bmike I added an edit after realizing I didn't mention the other option I was considering -- multiple contacts with smaller amounts of numbers in each. My gut says that may be the safer approach but I'm not sure.
    – Dave
    Mar 3, 2018 at 17:29
  • Hiya has an option to block spam calls on the local exchange. Since it uses CallKit it doesn’t generate a huge contact to manage blocked numbers. You should get good performance on even an iPhone 5. The current database of bad numbers now has around 200,000 entries in it.
    – CyberSkull
    Mar 8, 2018 at 19:09

2 Answers 2


There's no impact in performance. TrueCaller uses CallKit, the iOS provided method of blocking spam calls, and behind the scenes they are all loaded into one contact.

The only issue would be if you wanted to manage that contact manually rather than using an app that is designed to do it. Swiping to delete hundreds of contacts is a pain!

Anyway, there's an app called WideProtect that uses the CallKit to do the blocking and will let you set ranges of numbers to block.

  • My problem is the calls are designed to appear as if they are my "neighbors" from the same exchange as me. So if my number is 123-456-7890 we get calls all day long from 123-456-3321 or 123-456-7365 or ... always a random last 4. (so I need to block 10,000 numbers not 1,000 I messed up my question) As far as I understand the apps don't block those calls. Right now I'm experimenting with building 20 contacts with 500 numbers each. We'll see how it goes with a few for a while then ramp up.
    – Dave
    Mar 4, 2018 at 0:00
  • I should add that obviously many of those numbers are legitimate numbers, just not ones that would ever call me. So an app shouldn't block them since someone else may want calls from other people on the same exchange. Hence the need for something like the option I'm considering.
    – Dave
    Mar 4, 2018 at 0:08
  • You say from they appear to be from the same exchange. So are you redirecting calls from your landline to your iPhone? Mar 4, 2018 at 0:17
  • 1
    I recommend going with an established call blocking app that uses a communal database so everybody benefits from each others reporting. I use TrueCaller and it works very well. Best of luck to you all. Over and out. Mar 4, 2018 at 23:13
  • 1
    Matt I'm marking yours as the solution for reasons I specified in an edit to my question. WideProtect is great but it requires access to your contacts to allow specified callers in the blocked range to come through, but I hacked around that. So far I've had two days of blissful silence. Thanks. :)
    – Dave
    Mar 6, 2018 at 19:57

I can report no impact to performance at a far lower limit - my contact named "Telemarket Spam" to which I add callers and block that one contact is around 125 phones deep.

I would add all the numbers to one contact to simplify your life until you notice an issue or a problem and then back off a bit, and iterate to multiple contacts.

At some point, if the annoyance of curating this list overcomes my hesitance to subscribe to a service that integrates with the iOS phone app to classify and attempt to block suspect and known bad actors, I'll probably pay for a service to block calls. So far, I can't measure any slowdown or freeze - but I could see potential issues if you do manage to have thousands of numbers in the same contact.

Sorry this isn't super rigorous, but this one might be fairly easy to test empirically by generating a contact with 5,000 numbers and seeing when it breaks when you have time and a backup to restore your iOS device.

If I needed to profile this, I could use Instruments to attach to the contacts app and see where the contact is stored on the filesystem (for iOS or macOS) so there's clearly a way to reverse engineer how much space a number takes to store and measure any CPU usage related to editing that file or processing that data. Unless you see memory and CPU spiking, you can probably safely assume that as long as you care to keep adding numbers, the system will respond well if you just look at overall speed of the device while editing that contact.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .