久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    關于蘋果私有API的查找和使用

     最初九月雪 2018-04-10

    本文由2篇文章綜合而成,原文地址為:

    http://www./iphonedev/sdk/2011/0531/2906.html

    http://bbs.51cto.com/archiver/tid-846159.html


    一、關于蘋果API:

    1、Published API(公開的API):又稱 Documented API(文檔中記錄的API)。是蘋果通過 Cocoa Touch 向全世界第三方開發者公開的所有 API 。

    2、UnPublished API(未公開API):又稱 Undocumented API(文檔中未記錄的API),是指雖然放在Frameworks框架中,但是卻沒有在蘋果的官方文檔中有使用說明、代碼介紹等記錄的API。按蘋果的說法,未公開的API是還不夠成熟,可能還會變動的API,等完全成型了后會變成公開的API,但是目前不對其提供承諾,就是系統版本升級后可能會失效。

    3、Private API(私有API):指的是SDK下的 PrivateFrameWorks框架下的API,真實存在于 Cocoa Touch 中。私有API是蘋果明確規定不能使用的API,一旦你的作品中有私有API,在上傳AppStore的時候會100%被拒絕的。如果當作小范圍軟件的話就可以嘗試一下,比如再Cydia上發布,91上發布,條件不會很苛刻的。


    二、查找應用中的 Private API

    雖然我們能夠保證自己的APP中只使用 Cocoa Touch 公布的 API ,沒有使用私有API。但是我們如何確保這些第三方的代 碼報里,不存在 private API ?

    蘋果提供了幾種機器識別方法,比如 string 命令,比如 otool -ov 命令,但都不太好用。江湖上有人做了一套解決方案,名叫 AppScanner ,我老人家決定強烈推薦一下。

    • 怎么用?很簡單,你把工程編譯好,然后直接將 .app 文件夾整個拖進 AppScanner 窗口里。
    • 免費的么?幾乎是免費的,雖然收費(也才 $2.99 ),但是頭 14 天免費。
    • 是否有人維護?有,而且只要你愿意出 $2.99 支持他們維護。他們還會繼續開發下去。

    這是一個實例的截屏,頭兩項 API 可疑度 100% ,說明它們就是來搞破壞的 Private API。



    最后插一則八卦, Facebook / Three20 如雷貫耳,想必很多開發者都使用過。然而要命的事,在 Three20 的第一個版本中,就悄悄的藏著一條因為重名導致的假陽性 Private API 。雖然是假陽性,但那次事故仍然導致了所有使用那個版本 Three20 的 app 被慘拒。當然了,后來他們很快就修正了這個問題。


    三、使用私有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函數。


    gitHub有老外整理:https://github.com/nst/iOS-Runtime-Headers

      本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發現有害或侵權內容,請點擊一鍵舉報。
      轉藏 分享 獻花(0

      0條評論

      發表

      請遵守用戶 評論公約

      類似文章 更多

      主站蜘蛛池模板: 亚洲国产成人AⅤ毛片奶水| 日本高清在线天码一区播放| 无码国产偷倩在线播放| 西西大胆午夜人体视频| 黄又色又污又爽又高潮动态图| 国产av午夜精品福利| 国产高清自产拍AV在线| 中文字幕国产精品av| 亚洲AV少妇熟女猛男| 久久久久香蕉国产线看观看伊| 99精品热在线在线观看视| 亚洲国产无套无码AV电影| 国产午夜亚洲精品福利| 中文无码AV一区二区三区| 精品人妻中文字幕av| 人人妻人人澡人人爽欧美二区| 亚洲色一色噜一噜噜噜| 欧美乱妇高清无乱码免费| 一卡2卡三卡4卡免费网站| 免费无码国产欧美久久18 | 亚洲精品一区二区制服| 国语做受对白XXXXX在线| 国产av一区二区不卡| 国产乱女乱子视频在线播放| 欧美极品色午夜在线视频| 亚洲综合无码一区二区| 久久96热在精品国产高清| 婷婷久久香蕉五月综合加勒比| 不卡AV中文字幕手机看| 亚洲成人av在线高清| 熟妇人妻中文字幕| 亚洲国产日韩在线人成蜜芽| 久久精品免视看国产成人| 97久久精品无码一区二区| 亚洲人成电影在线天堂色| a级黑人大硬长爽猛出猛进| 亚洲AV天天做在线观看| 国产欧美在线一区二区三| 一区二区中文字幕久久| 国产精品99久久久久久WWW| 午夜色大片在线观看|