-->

Using CoreTelephony framework to get IMEI and IMSI

2019-06-13 00:17发布

问题:

Hi developers around the world, the app I am making is for in house distribution, we used some Apple's little secrets to get the app working as we want: like getting the IMEI and IMSI with methods described here: get IMEI on iPhone with CoreTelephony?

It worked fine for last 2 years, but since more and more people in the company moved to iOS 7, we found this method no longer suits our need - it simply returns a nil in iOS 7. The whole system is designed to hold IMEI and IMSI info, modifying it would require a considerable amount of effort, so we would rather focus on getting the IMEI and IMSI info out of the device.

My research has lead me to this article: https://code.google.com/p/iphone-wireless/source/browse/wiki/CoreTelephonyFunctions.wiki , which described a private method called __CTGetIMEI. However, I don't know how to use this method since it looks like a C level method. If so one could point me to an example, please help.

回答1:

There is no such function in iOS7 CoreTelephony framework. There was in iOS 4.0 but it missing since 4.3 or so.

There are many ways to get IMEI How to get IMEI on iPhone 5 but since iOS7 they are protected with entitlement com.apple.coretelephony.Identity.get. Therefore these APIs will only work on jailbroken devices. The same applies to IMSI.