2012-11-19 174 views

回答

5

使用私有API是。當應用程序在後臺運行時,UIGetScreenImage()也可以使用。我設置了一個應用程序,以便在引發異常時進行屏幕截圖,並且在後臺運行時崩潰時還會截取主屏幕/其他應用程序的屏幕截圖。

這個問題有一些有趣的答案,關於從AppStore上的DisplayRecorder應用:How does the iOS app Display Recorder record the screen without using private API?

,這表明你如何使用UIGetScreenImage:https://stackoverflow.com/a/2507740/832065


更新:

_UICreateScreenUIImage()是獲得屏幕截圖的方法快得多。它也返回一個UIImage代替CGImageRef:

OBJC_EXTERN UIImage *_UICreateScreenUIImage(void) NS_RETURNS_RETAINED; 
+2

抱歉請注意,使用私有API會在應用程序提交到App Store時被拒絕。 –

+1

是的,這是顯而易見的......每當私人API被蘋果拒絕時,就不必提及它。動態加載私有框架在運行時(dlopen?)或類似的東西可以潛入蘋果的靜態分析器 – JonasG

+1

至少在iOS7中,'UIGetScreenImage()'不能在後臺工作,你很明顯會在日誌中看到一條消息,如果你嘗試的話,不要這麼做。然而,在你有效地進入後臺模式之前,你可以得到的最後一張圖片是跳板(當你離開你的應用程序時),但不幸之後沒有任何提示。 – Frank

相關問題