Ios7 iOS 7:如何通过私有API获取自己的号码?

Ios7 iOS 7:如何通过私有API获取自己的号码?,ios7,phone-number,core-telephony,Ios7,Phone Number,Core Telephony,旧方法不再有效: //方式1 void*lib=dlopen(“/Symbols/System/Library/Framework/corethony.Framework/corethony”,RTLD_); NSString*(*getPhoneNumber)(=dlsym(lib,“CTSettingCopyMyPhoneNumber”); 如果(getPhoneNumber==nil){ NSLog(@“getPhoneNumber为零”); 返回零; } NSString*ownPhon

旧方法不再有效:

//方式1

void*lib=dlopen(“/Symbols/System/Library/Framework/corethony.Framework/corethony”,RTLD_);
NSString*(*getPhoneNumber)(=dlsym(lib,“CTSettingCopyMyPhoneNumber”);
如果(getPhoneNumber==nil){
NSLog(@“getPhoneNumber为零”);
返回零;
}
NSString*ownPhoneNumber=getPhoneNumber();
//方式2

extern NSString*CTSettingCopyMyPhoneNumber();
NSString*phone=CTSettingCopyMyPhoneNumber();
相关问题:

[更新]

提供的方法适用于不带JB的iOS 6.1.4和带JB的iOS 7.1.2

感谢用户的提示

要获得号码,您必须使用以下方法:

1.代码

-(NSString*)getMyNumber{
NSLog(“开放核心电话”);
void*lib=dlopen(“/Symbols/System/Library/Framework/corethony.Framework/corethony”,RTLD_);
NSLog(@“从CoreTephony获取CTSettingCopyMyPhoneNumber”);
NSString*(*pCTSettingCopyMyPhoneNumber)(=dlsym(lib,“CTSettingCopyMyPhoneNumber”);
NSLog(@“从CoreTephony获取CTSettingCopyMyPhoneNumber”);
如果(pCTSettingCopyMyPhoneNumber==nil){
NSLog(@“pCTSettingCopyMyPhoneNumber为零”);
返回零;
}
NSString*ownPhoneNumber=pCTSettingCopyMyPhoneNumber();
dlclose(lib);
返回自己的电话号码;
}
2.无需签名即可生成应用程序:

3.创建包含以下内容的xml文件(authentications.xml):


com.apple.corethony.Calls.allow
com.apple.corethony.Identity.get
其中:

com.apple.corethony.Calls.允许呼叫

com.apple.corethony.Identity.get-获取自己的号码

4.Sing app with authoritions.xml 将文件复制到一个文件夹中:

/folderforrunsing/
YourApp.app
授权.xml
授权.xml-创建的xml

YourApp.app-从XCode文件复制应用程序的二进制文件 要查找二进制文件的位置,请使用以下命令:

$ls-la~/Library/Developer/Xcode/DerivedData/| grep YourApp
路径应如下所示:

/Users/username/Library/Developer/Xcode/DerivedData/YourApp-cktasembftvbmqaiiunvljdwocs/Build/Products/Debug-iphoneos/YourApp.app
运行歌唱命令:

$codesign--sign='iPhone开发者:FirstName SecondName(XXXXXXXX)'
--authorights.xml YourApp.app
“iPhone开发者:FirstName SecondName(XXXXXXXX)”-密钥链中证书的名称

5.使用ssh将应用程序YourApp.app复制到您的设备上的文件夹

/应用程序
6.重新启动跳板(在设备上运行):

$su mobile-c uicache 1>/dev/null 2>&1
工作样品可在上找到

iOS 7.1.2上的结果(JB是必需的!):

iOS 6.1.3上的结果(在没有JB和特殊签名的情况下工作,只需构建并运行


要使用此API,您需要使用权限
com.apple.corethony.Identity.get
对应用程序进行签名,布尔值设置为true。

如何签署权限。请共享任何链接以获取mobile number.FYI,以防其他人有兴趣在企业应用程序中使用此私有API权限,弗格达布提特。您可以创建授权plist并将其添加到项目中,但您不能将com.apple.corethony.Identity.get添加到配置文件中(您不能将自定义授权添加到配置文件中),因此应用程序将生成,但在尝试在ios上运行时会失败。我知道我们无法将其添加到配置文件中,因此,无法获取用户的活动/当前电话号码。谢谢苹果,iOS开发者再一次对android开发者提出了挑战:)这个示例在iOS 8.4中不起作用。在xcode 6.4中工作是否需要额外的工作?这是一个有用的答案,但答案应该从问题中分离出来,作为下面的真实答案。回答你自己的问题没什么错。甚至接受它:)