2009-02-18 7 views
13

Bien que je comprenne que pour qu'une application iPhone soit acceptée sur l'App Store, une exigence est que seules les bibliothèques documentées doivent être utilisées.Commandes de caméra iPhone personnalisées (n'utilisant pas UIImagePickerController)

Si tel est le cas, comment certaines applications telles que "Night Camera" et "Camera Plus" utilisent un contrôle de caméra qui semble être autre chose que celui contenu dans UIImagePickerController?

J'ai entendu parler de certains cas où un développeur a reçu un accès «spécial» à certains en-têtes qui autorisent des fonctionnalités qui seraient autrement impossibles s'il était contraint à utiliser uniquement des bibliothèques documentées. Cependant, étant donné que le processus de sélection d'applications est opaque pour l'App Store, je préférerais m'en tenir à ce qui est recommandé plutôt que de tenter ma chance.

Quelqu'un veut-il apporter plus de lumière à ce sujet?

Répondre

6

Vous voudrez peut-être consulter un classdump des en-têtes de cadre privés Apple. Exécutez ce script perl:

http://arstechnica.com/apple/news/2008/11/dumping-the-iphone-2-2-frameworks.ars

et accédez au répertoire PhotoLibrary sous PrivateFrameworks. Certaines classes ici semblent plutôt prometteuses pour l'accès direct à la caméra. L'utilisation de l'API non documentée pourrait nuire à vos chances de traverser l'app store, mais tout cela est très subjectif - Si votre produit est bon, Apple le laissera probablement glisser. Je recommande de faire des amis avec un développeur évangéliste chez Apple.

+0

Merci pour le lien de vidage du framework.Je vais lancer le script à des fins éducatives, mais je m'en tiendrai aux classes documentées pour l'instant. –

+0

Bien sûr. Faites-moi savoir si vous venez avec une solution qui ne viole pas les termes d'Apple –

1

Le UIImagePickerController est une sous-classe UIViewController qui gère une hiérarchie de vues. Vous êtes libre de jouer avec la hiérarchie des vues, comme c'est le cas pour ces applications, mais c'est risqué étant donné qu'Apple ne le documente pas et pourrait le modifier sur n'importe quelle mise à jour du système d'exploitation.

Je n'ai entendu parler d'aucun accès spécial aux bibliothèques, mais j'ai lu qu'il existe une distinction mineure entre les classes et méthodes non documentées et les frameworks privés. Les classes non documentées sont une zone grise, mais les frameworks privés ne sont définitivement pas autorisés.

+0

Certainement. Merci pour l'info. –

0

L'explication simple est que les applications du magasin ne sont pas supposées utiliser des API non prises en charge, mais cela n'est pas vérifié de manière cohérente. Les applications que vous avez mentionnées utilisent soit des fonctions/classes/méthodes non supportées, soit elles jouent avec la hiérarchie des vues, elle-même non documentée, même si cela peut être fait avec des API standard.

Vous pourriez faire ce qu'ils font, et tenter votre chance avec. Juste être conscient des risques. Votre application peut (a) être rejetée du magasin, (b) être acceptée mais plus tard démarrée (ceci est arrivé pour une utilisation API non supportée), (c) être acceptée et non démarrée mais se casser la prochaine fois qu'Apple a une nouvelle mise à jour du logiciel iPhone (car les API non prises en charge ou les hiérarchies de vue peuvent changer sans avertissement). Ou vous pourriez avoir de la chance et rien de tout cela n'arrive.

Questions connexes