Pouvez-vous exécuter une application iOS dans une autre application iOS

Est-il possible pour moi d'écrire une application qui est supposée être un wrapper autour de quelques autres applications, puis d'exécuter ces applications dans mon application principale?

L'idée est qu'il va y avoir un menu que je veux juste écrire une fois, mais je veux l'intégrer comme la couche supérieure d'un certain nombre d'autres applications.

Une autre façon de penser est peut-être de créer un UIWindow au plus haut niveau et de le lancer là-bas, mais j'ai des problèmes à passer.

Merci!

Je pense que c'est la mauvaise approche à adopter globalement. Si vous voulez que votre code soit réutilisable, écrivez une bibliothèque.

Vous ne pouvez pas héberger plusieurs applications dans une même application, car pour autant que je sache, le bac à sable d'Apple empêche cela, et permet uniquement aux applications de s'exécuter une à la fois.

Vous avez quelques options pour émuler la fonctionnalité souhaitée, cependant:

  • Utilisez UINavigationController ou UITabViewController pour naviguer entre différents viewcontrollers, permettant ainsi au menu de niveau supérieur d'aboutir à différentes «fonctionnalités» dans l'application. (ce qui signifie que vous n'avez pas vraiment besoin d'utiliser explicitement UIWindow, vous pouvez utiliser les ségrégations Storyboard et Storyboard pour relier ces différentes parties fonctionnelles) Avantage: c'est une application. Inconvénient: une inscription sur l'App Store.

  • Utilisez des templates d'URL personnalisés pour vous déplacer entre deux applications iOS distinctes. Chaque application iOS est (habituellement) son propre projet (si vous ne countz pas les 'cibles', qui peuvent omettre des files spécifiques de chaque version) et que toutes les applications ne sont pas installées sur chaque périphérique. Mais en supposant qu'un client possède vos deux applications, vous pouvez ouvrir une application d'une autre à l'aide d'un tel schéma d'URL, et même transmettre des données. Ma propre application utilise un schéma d'URL pour transmettre des données de la version «allégée» à la version «pro». Avantage: plusieurs lists sur l'App Store. Inconvénient: ne fonctionnera pas si l'user n'a pas installé les deux applications.

  • Réutilisez le code "menu de niveau supérieur" dans plusieurs applications, puis effectuez une certaine logique afin que l'application utilise uniquement les templates d'URL personnalisés lorsque vos autres applications sont installées. Vous pouvez ensuite les redirect vers la page App Store pour les applications qu'ils n'ont pas encore installées. Avantage: plusieurs lists sur le magasin, expérience unifiée, et apporte l'user à l'app store si l'application n'est pas encore installée. (Je n'ai pas encore implémenté de code pour vérifier si une application est installée … On dirait que cette question a été posée ici .)

Edit: J'ai lu votre autre question . Il semble que par "niveau supérieur" vous voulez dire quelque chose qui est graphiquement collant sur l'écran, et n'est pas supprimé par d'autres vues que l'user navigue dans l'application? Je ne sais pas comment faire avec Foundation, mais vous pourriez être en mesure de le faire avec Quartz2D (orienté vers les applications utilitaires) ou Cocos2D (orienté vers les jeux).