簡體   English   中英

iOS如何使用私有API?

[英]iOS How to use private API?

我不想將此應用程序提交給AppStore。 我已經嘗試了很多次,但遇到了很多問題:(

我使用class-dump來獲取UIKit.framework的所有頭文件。 在由class-dump生成的UIApplication.h中,我看到了我想要使用的方法---- launchApplicationWithIdentifier。

然后我把UIApplication.h放在我的項目中並導入它。 編譯,我得到了很多“重新定義枚舉器....”錯誤,因為在我之前使用的UIKit.framework中,還有另一個UIApplication.h。 但是這個文件沒有startApplicationWithIdentifier方法。

如果我刪除以前的UIKit.framework並導入class-dump生成的文件夾。 然后它看起來像一個框架,但如果我展開它,它是空的。

然后我想讓所有生成的頭文件成為一個框架文件,取代之前的UIKit.framework。 但我不知道怎么做。 我們可以看到,在系統框架目錄下,有一個與框架同名的文件,並有一個“執行的shell腳本”圖標。 我該怎么做這個文件?

我真的很困惑。 有人可以幫個忙嗎? 謝謝。

只需在要使用它的類實現上方的類別接口中指定私有方法,如下所示:

@interface UIApplication (Private)

- (BOOL)launchApplicationWithIdentifier:(id)identifier suspended:(BOOL)suspended;

@end

不要導入整個類轉儲文件並與原始UIKit框架鏈接。

使用私有API時必須非常小心。 這些方法可以在未來的iOS版本中更改或刪除!

使用respondsToSelector:檢查方法是否確實存在respondsToSelector:在運行時並為不存在的情況做好准備。

我在我自己的應用程序中使用了一個秘密的MapKit功能,我知道私有方法只存在於iOS 5中。所以我的應用程序仍適用於所有iOS版本,但此功能僅適用於iOS 5(Apple已刪除或在iOS 6中更改) beta 1)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM