2012-04-01 7 views
5

Ich weiß, UIGetScreenImage ist eine private API, und in einem bestimmten Zeitraum kann im Appstore verwenden.UIGetScreenImage wird jetzt abgelehnt?

und später jemand sagte, kann nicht mehr verwenden.

Also frage ich hier, um sicherzustellen, kann in meiner App verwenden und an Appstore übergeben?

Mit freundlichen Grüßen

Antwort

1

Vor rund einem Jahr, begann Apple auf eingereicht Binärdateien während der statischen Analyse laufen App Store-Überprüfungsprozess. Zuvor wird der Zugriff auf private APIs die Prüfung bestehen, wenn die Funktionalität selbst nicht zu offensichtlich war, um vom Prüfer abgefangen zu werden.

Derzeit verwendet der Prüfer automatisierte Methoden, um private APIs anhand ihrer Namen zu identifizieren. Ich erinnere mich, irgendwo gelesen zu haben, dass man sie nicht nur anrufen darf, sondern auch private API-Namen in Category Methodennamen verwenden kann. Ich stelle mir vor, da der Scan-Prozess automatisiert ist, würden Sie keine Chance haben, die Überprüfung zu bestehen, wenn Sie undokumentierte Methoden verwendet haben.

7

Werfen Sie einen Blick auf dieser Apple-Tech-Note. Es zeigt, wie „legal“ zu Screenshots in UIKit tun, wo es wird in den App Store aufgenommen zu werden:

http://developer.apple.com/library/ios/#qa/qa1703/_index.html#//apple_ref/doc/uid/DTS40010193

+3

Großartig, aber warum wird die Statusleiste nicht aufgenommen? –

+0

Aber Alternative von CGImageRef UIGetScreenImage (void); gibt nicht 2x Bild, wenn ich einen Screenshot mache? Zum Beispiel ist das Screenshot-Bild von dieser privaten API 640x1136 in Retina-Display, aber andere alternative Code gibt nur 320x568 nur – jailani

+0

Warum interessieren Sie (oder Ihre Benutzer) @ 2x beim Erstellen von Screenshots, @iOSDeveloper? Sie sollten sich nur um Retina-Display und @ 2x (höhere Auflösung) Grafik kümmern, wenn Sie Ihre Apps * erstellen *, nicht wenn Sie Screenshots von ihnen erstellen. Wenn Sie der Meinung sind, dass "UIGetScreenImage" einen Fehler aufweist, können Sie eine Verbesserungsanfrage immer über http://bugreporter.apple.com an Apple senden. –

2

Sie haben es für eine lange Zeit abgelehnt, seit iOS 4 Release im Jahr 2010, als sie AVFoundation-Framework, das eine Lösung für alle Kamera-Frame-Capturing war, die UIGetScreenImage() war meist für verwendet wurde eingeführt.

Sie boten zwei Alternativen an, eine für Kamerabilder (Technical Q&A QA1702) und eine für UIKit-Elemente (Technical Q&A QA170 - die von Michael erwähnte), aber keine davon ist fast genug brauchbar, um tatsächliche Screenshots zu machen.

Sie können die Ankündigung unter developer forums (iOS Developer Program account erforderlich) lesen.