Skip navigation
This discussion is archived

Phanfare iPhone app has direct camera access?! How?!

13543 Views 29 Replies Latest reply: Feb 22, 2009 8:05 PM by codz RSS
  • kb1ooo Calculating status...
    Andrew,

    If your team didn't build the headers from the dylibs using class dump then they got them from someone who did. Section 3.3.1 of your sdk license agreement reads: "Applications may only use Published APIs in the manner prescribed by Apple and must not use or call any unpublished or private APIs"

    Jonathan Zdziarski's O'Reily book documents all the private frameworks but is not support by Apple.

    I'm guessing that Apple didn't officially release the PhotoLibrary framework, partly because they'd rather support a simpler interface, and partly because they don't want people to build apps that can compete with theirs.

    Marc
  • kb1ooo Level 1 Level 1 (0 points)
    eventhough,

    Phanfare got pulled from the app store, obviously because Apple realized that the app uses the private frameworks and it somehow slipped under their radar. There was nothing legit about how Phanfare used the private frameworks. They did the same thing that everyone else has done to use the private APIs. The headers didn't come from Apple--as Andrew admitted--and they didn't fall out of the sky onto their computers without them knowing.

    Not to mention the fact that if the CEO is resorting to posting in this forum, they can't get Apple to answer any of their calls. It doesn't sound to me like they are getting away with breaking the rules.

    Marc
  • applephan Calculating status...
    Currently Being Moderated
    Jul 15, 2008 6:55 PM (in response to kb1ooo)
    Apple has gotten back to us and confirmed the issue was that we used what they consider to be a private framework. We did get it from the O'Reilly book. We are going to resubmit our app with the standard camera framework.

    The poster above brings up a valid point, which we had not considered, that it is important that apps are limited to a camera framework that is guaranteed to make a shutter sound, show a preview, and animate the shutter. Otherwise, there are serious security implications as the app could take a photo without your knowing, provided it was running. One can imagine a free game secretly taking photos while you play it.

    There is no doubt that the framework we used is more than 5x faster than the one we now need to use. So hopefully, Apple will continue to improve the performance of the public framework. Seems like there is no reason it could not be faster. The built-in camera proves that the shot to shot time on the phone is quite good.

    Anyway, we had no bad intentions (we really do love apple). We are just trying to provide a great user experience.

    Andrew
    Macbook Pro, Mac OS X (10.5.4)
  • kb1ooo Level 1 Level 1 (0 points)
    Otherwise, there are serious security implications as the app could take a photo without your
    knowing, provided it was running. One can imagine a free game secretly taking photos while you
    play it.


    I agree. However, I don't know why the public interface needs to be 5x slower, and uglier.

    Also, what's worrisome about the security issue is that they obviously have no way to know if an app is using the private API directly; your app slipped under the radar even though it was visible from the user interface that you were using a private framework. Would they have caught it if you indeed were snapping pics unbeknownst to the user...

    Marc
  • xoumi Calculating status...
    Currently Being Moderated
    Jul 16, 2008 8:47 AM (in response to kb1ooo)
    kb1ooo,

    Sorry for my mistake. I was thinking that the UIImagePickerController just let you select a photo from the library but not take a new one using the camera (I'm completly newbie on iPhone dev). Thus, when I try the SnapMyLife app, I think they used the private framework to get access to the camera and let you snap new pics. And I don't experienced myself any crash when I'm using it.

    Since the removal of the Phanfare app from the AppStore, may we agree that there is really no way to use PrivateFrameworks with the actual Apple agreement policy ?
    In your opinion a "special" agreement deal can be possible ?

    Rgds
    mbp, Mac OS X (10.5.4)
  • applephan Level 1 Level 1 (0 points)
    Currently Being Moderated
    Jul 18, 2008 9:11 PM (in response to kb1ooo)
    The Phanfare app is back in the Apple app store. The camera is significantly slower now, but hopefully Apple will improve that over time.

    Andrew
    Macbook Pro, Windows Vista
  • hack4 Calculating status...
    Andrew,

    Can you discuss at all how you were able to add things like the progress bar overlay to the standard imagepicker view controller?
    Windows XP Pro
  • speth Calculating status...
    Currently Being Moderated
    Sep 10, 2008 6:16 AM (in response to hack4)
    I don't know, can we openly discuss things, or is the NDA still in effect?

    But let's say you were coding for the Mac, not the iPhone, and you had an object that inherited from a view controller. You could access its view and add subviews to it, right?
  • airsource Calculating status...
    The shutter sound can't be a significant concern, as it doesn't play when the phone is in silent mode.
    Macbook, Mac OS X (10.5.5), Macbook
  • airsource Level 1 Level 1 (0 points)
    The shutter sound can't be a significant concern, as it doesn't play when the phone is in silent mode.
    Macbook, Mac OS X (10.5.5), Macbook
  • speth Level 1 Level 1 (0 points)
    Has anyone here seen QuadCamera (in the app store)?

    It is able to take several pictures in rapid succession. I wonder how they are able to do that. It looks very similar to our original app that used the private CameraController class.

    Any thoughts?

    Jim Speth
    Phanfare
  • larsberg Calculating status...
    Currently Being Moderated
    Feb 3, 2009 3:04 PM (in response to speth)
    Assuming they're not using private APIs (which I would guess - Apple has been getting much stricter about checking and veto'ing such applications), I'd bet they're just grabbing the preview frame and asking it to render itself to a bitmap context. You can poke around to find the preview frame with the info at:
    http://blog.airsource.co.uk/index.php/2008/11/11/views-of-uiimagepickercontrolle r/

    I was playing around with a similar application to make "mini-movies" and had a demo done, but decided I was just tempting fate with the review staff. And likely to be broken in a future update, like I expect 90% of the camera applications will be, as they are also poking around internal details of the view hierarchy.
    MacbookPro, Mac OS X (10.5.4)
  • EXcell Calculating status...
    Is there any chance to make a closer look at any demo of what airsource published on his blog. Seems that is only a single way to use public APIs from Apple for any undocumented purposes. In particular I'm interested in overlay the camera view with some lables/text info or whatever abstract objects.

    Do you think it is possible to implement with no violation of Apple license agreement?
    Mac OS X (10.5.5)
  • codz Calculating status...
    I have tried rendering the preview frame into a context and attempting to extract the image, however like many people have struck the problem with the "black screen" output. @larsberg - How did you manage to get around this?
1 2 Previous Next

Actions

More Like This

  • Retrieving data ...

Bookmarked By (0)

Legend

  • This solved my question - 10 points
  • This helped me - 5 points
This site contains user submitted content, comments and opinions and is for informational purposes only. Apple disclaims any and all liability for the acts, omissions and conduct of any third parties in connection with or related to your use of the site. All postings and use of the content on this site are subject to the Apple Support Communities Terms of Use.