实时搜索: ios 私有api 有哪些

ios 私有api 有哪些

492条评论 1681人喜欢 4443次阅读 978人点赞
那些不用经过AppStore可以在网页直接安APP装的企业级APP会泄露隐私吗?线上查找了相关信息,说这类APP能调用私有API,不懂。想请问调用私有API能存取哪些信息? ...

Apple如何知道你用私有API: 最近cocoachina 发起了一个关于iOS开发者遇到审核失败的原因及解决办法的主题讨论,现简单整理有价值回复如下。
  App中设计的图标与Apple原生图标类似,Apple原生图标有专利保护,并且在Design Guideline里面规定,App的图标不能与Apple图标雷同,如iTunes,App Store, iPod等的图标。若出现雷同App将被拒。

如何利用私有API,发送imessage: iMessage账号目前获取的方法主要是扫描手机号码。扫描手机号码可以通过代码自动扫描,也可以通过人工筛眩通过代码自动扫描本人暂未发现很好的方法,建议大家可以从以下两方面着手: 1.编写AppleScript脚本控制Mac OS自带的iMessage客户端进行验

如何检测app中使用了苹果的私有api: 最近cocoachina 发起了一个关于iOS开发者遇到审核失败的原因及解决办法的主题讨论,现简单整理有价值回复如下。

  App中设计的图标与Apple原生图标类似,Apple原生图标有专利保护,并且在Design Guideline里面规定,App的图标不能与Apple图标雷同,如iTunes,App Store, iPod等的图标。若出现雷同App将被拒。

如何确定代码是否用了私有api: [[NSUserDefaults standardUserDefaults] setInteger:2 forKey: @"WebKitCacheModelPreferenceKey"];
    [[NSUserDefaults standardUserDefaults] setInteger:1 forKey: @"WebKitMediaPlaybackAllowsInline"];
 
    id webView = [self.webView valueForKeyPath:@"_internal.browserView._webView"];
    id preferences = [webView valueForKey:@"preferences"];
    [preferences performSelector:@selector(_postCacheModelChangedNotification)];

如何利用私有API,发送imessage: iMessage介绍

iMessage是苹果设备(iPad、iPhone、iPod touch)自带的免费信息发送应用。它的信息通过网络发送,不同于运营商短信。目前iMessage日活跃用户1.9亿,日发送约20亿条。

iMessage优势

iMessage与传统短信不同,具有以下优势:

目标人群明确,均为苹果用户,消费能力较强
文字数量不限,同时还可以添加表情和图片
可以添加网址、下载链接等,用户可以直接通过手机访问
不会被手机安全卫士拦截
转发就像手机短信一样方便
无发送成本
送达终端的概率极高

iMessage推广技术实现

群发iMessage主要需要攻破两个技术难点,一个是iMessage账号的获取,另一个是群发iMessage。

iMessage账号获取

iMessage账号目前获取的方法主要是扫描手机号码。扫描手机号码可以通过代码自动扫描,也可以通过人工筛选。通过代码自动扫描本人暂未发现很好的方法,建议大家可以从以下两方面着手:

1.编写AppleScript脚本控制Mac OS自带的iMessage客户端进行验证,类似于群发iMessage。发送一条iMessage之后,如果捕获到发送失败的异常则不是iMessage账号

2.研究iOS系统中Message framework中的私有api,通过私有api进行验证

要进行人工筛选,也可以通过Mac
OS自带的iMessage客户端。方法是编写程序,将要验证的号码输出到文件中,以逗号分隔。再将文件中的号码粘贴到iMessage客户端的地址
栏,iMessage客户端会自动逐个检验该号码是否为iMessage账号,检验速度视网速而定。其中红色表示不是iMessage账号,蓝色表示
iMessage账号以及未检验的账号。如图:

检验过程中有可能会出现停止的现象,可以全选所有号码后,剪切再粘贴即可继续检验。

iMessage群发

检验完所有账号后,可以从中选取出iMessage账号进行群发。群发有两个方法,一个还是通过iMessage客户端,另一个是通过AppleScript脚本控制iMessage客户端发送。

通过iMessage客户端发送,可直接将号码粘贴至地址栏,填写内容,发送即可。

通过ApplseScript控制iMessage客户端的脚本如下:

[javascript] view plain copy
tell application "Messages"
set csvData to read "/Users/xxxx/Desktop/test.csv"
set csvEntries to paragraphs of csvData
repeat with i from 1 to count csvEntries
set phone to (csvEntries's item i)'s text
set myid to get id of first service
set theBuddy to buddy phone of service id myid
send "今天北京晴,气温13到27度;周二晴,气温11到26度,北风3-4级;周三晴,气温11到24度,微风<3级" to theBuddy
end repeat
end tell
以上代码可从一个csv文件中读取出iMessage账号,并通过iMessage客户端逐个发送iMessage消息。

需要注意如下问题:

1.由于该脚本是控制iMessage客户端进行发送,所以必须在MacOS 10.8以上(10.7系统中的iMessage Beta版本已无法使用)的系统中运行,同时开启iMessage程序。

2.该脚本在发送iMessage时并不是后台发送,所以当发送量很大时,会导致iMessage客户端运行缓慢,甚至无法开启。可通过清空所有已发送的iMessage或注销账号解决。

3.通过脚本发送的iMessage账号必须是在当前iMessage客户端中检验过的,否则会报“不能获得“buddy id "C0B35E7F-A0FB-49E1-BDD7-C867BC06D920:+86136xxxx0000"”。

什么是调用私有API,能获取iPhone的哪些信息?: 一.基本知识
  iPhone中的API除了公开的 API:Published API外(或者叫文档中记录的API:Documented API),还有两类API:私有API:Private API和未公开的API:UnPublished API(或者叫文档中未记录的API:Undocumented API)。其中私有API是指放在PrivateFrameworks框架中的API,未公开的API是指虽然放在Frameworks框架中,但是却没有在苹果的官方文档中有使用说明、代码介绍等记录的API。
后两种API是有区别的,按苹果的说法,未公开的API是还不够成熟,可能还会变动的API,等完全成型了后会变成公开的API,但是目前不对其提供承诺,就是系统版本升级后可能会失效。而私有API是苹果明确不能使用的API。虽然两者有所区别,但是在具体使用方法上是类似的。

二.具体介绍
  1.导出生成私有API的头文件声明
  使用私有或未公开的API,首先需要导出其对应的头文件,在头文件里有相关函数的声明。

  工具:

  class-dump

  class-dump可以从编译后的Objective-C的二进制文件中提取对应的数据结构及函数等声明。

  使用方法:
  为了能在任意目录下使用class-dump命令,首先建议把class-dump文件拷贝到/user/local/bin/目录下,然后就可以在任意目录下执行以下命令:
  class-dump /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.0.sdk/System/Library/Frameworks/UIKit.framework/ >UIKit.h

  以上命令就可以把 iPhoneSimulator3.0.Sdk中Frameworks框架里的UIKit.Framework框架的数据结构及函数声明等给提取出来,并且放在UIKit.h这个文件中,之后你就可以在这个头文件中找你需要API的声明及其使用方式。以同样的方法,就可以挨个导出你需要那个框架中的API 声明。

  也可以用ericasadun写的DumpFrameworks.pl(文件中有部分注释说明)这个文件把私有框架下的API头文件全部提取出来。使用方法也是首先把class-dump文件拷贝到/user/local/bin/目录下,然后在任意一个目录下执行./DumpFrameworks.pl,然后就会在你的家目录下产生一个Headers文件夹,里面罗列了私有框架下的API头文件。

  2.使用私有API
  导出了私有API的头文件声明后,使用方法就比较简单了,首先在你的工程中包含进头文件,然后导入对应的框架,之后就可以类似提供了静态库的方式在我们的代码中使用这些私有API函数。

  三.附加说明
  iPhone编程中一些非常精致好玩的API都包含在私有API或未公开的API中,虽然可以以这种方式使用这些非常好的API,但是这样做是存在一定风险的,首先为公开的API有变更的可能,这样在每个固件版本中,代码都有可能中断。
同时,最大的问题是使用了私有API的程序是不能放在App Store上销售的。因此如果我们只是为了好玩体验iPhone中这些精彩的API,那没关系。如果是为了做出程序放在App Store上销售的,那就不要动私有API的主意了。

如何使用私有api获取udid或者imei,求指教: UDID可以关联其它各种数据到相关设备上。
例如,连接到开发者账号,可以允许在发布前让设备安装或测试应用;也可以让开发者获得iOS测试版进行体验。苹果用UDID连接到苹果的ID,这些设备可以自动下载和安装从App Store购买的应用、保存从iTunes购买的音乐、帮助苹果发送推送通知、即时消息。
在iOS应用早期,UDID被第三方应用开发者和网络广告商用来收集用户数据,可以用来关联地址、记录应用使用习惯……以便推送精准广告。不少用户也对此表示苹果侵犯消费者隐私,因此在后期苹果反对开发人员使用UDID。

什么是调用私有API,能获取iPhone的哪些信息: 私有API是指苹果官方没有公布给开发者的一些API。一般这些API可能不太成熟,或者在后续的版本会发生变化,所以未对开发者公开。但是开发者能够通过iOS 的运行时,去探索调用了那些API。私有API能够获取包括手机号、Wi-Fi地址,Mac地址等等一系列的信息。

  • dnf卢克哪里打

    手机魅族与苹果比谁更好: 为什么总是会有人来问这个问题呢,难道是我跟不上时代的脚步了? ...

    369条评论 2284人喜欢 4868次阅读 280人点赞
  • plus什么意思

    魅族PRO6怎么样?对比与苹果6SP是都有3DTACH功能吗?具体有什么区别,国产好还是苹果更胜一筹: 整体还行,但和苹果差距还是很明显的,但也便宜不少,T要看你的预算 ...

    951条评论 5693人喜欢 5677次阅读 950人点赞
  • ps3的游戏在哪

    股票22元涨到35元赚多少: 股票22元涨到35元赚了 35-22=13元、13÷22x100%=59.09% ...

    992条评论 5894人喜欢 6466次阅读 855人点赞
  • 05飞度的火花塞有几个

    10x74的22kg=多少t: 解:依题意得,10×(74×22)=10×1628=16280千克=16.28吨即10×74的22千克=16.28吨 ...

    524条评论 5869人喜欢 5388次阅读 816人点赞
  • 22岁生孩子可以放多久假

    22市尺对应多少尺?: 22英寸=22x25.4毫米=74厘米,所以22不是市尺,数字74的单位是厘米 ...

    401条评论 4191人喜欢 5609次阅读 640人点赞
  • 6d如何对焦

    在Windows中,将整个桌面画面复制到剪贴板的操作是: 在Windows中,将整个桌面画面复制到剪贴板的操作是按PrintScreen键,就可以复制使用了。1、在电脑桌面按截图快捷键PrintScreen。2、按PrintScreen后,就可以将图片复制到粘贴板,打开微信...

    362条评论 1838人喜欢 2092次阅读 702人点赞