Comment accéder à la machine hôte elle-même à partir du simulateur iPhone

101

Je développe une application qui se connecte à un service Web pour la plupart de ses opérations. En tant que raccourci, j'aimerais exécuter une copie de mon serveur de développement sur ma machine. La question est:

Comment / puis-je accéder au réseau de la machine hôte (http dans ce cas) à partir du simulateur iPhone?

Je développe le service Web avec l'application, il serait donc utile de les avoir tous les deux sur la machine hôte, puis je peux valider les modifications si nécessaire.

Jordan Walsh
la source
quelle est la configuration de votre serveur de développement?
Nick Weaver
Vous vous demandez quelles bibliothèques utiliser dans le SDK iOS? Vous devriez simplement être en mesure de fournir la chaîne URL, c'est-à-dire " localhost: #### / myURL ".
Jacob Barnard

Réponses:

133

Le simulateur iOS utilise le réseau de la machine hôte, vous devriez donc pouvoir utiliser uniquement l'hôte local ou l'adresse IP de votre machine, quelle que soit l'adresse IP sur laquelle votre service Web écoute.

jaminguy
la source
S'étendant sur la réponse de jaminguy, MAC OSX dispose également d'un serveur Apache intégré. Faites une recherche rapide sur Google .....
Sid
1
Comment savoir quel port est utilisé?
Doidgey
3
Le port dépend des paramètres de votre serveur Web
zambono
1
Est-il possible de le faire à partir d'un appareil connecté via USB?
Ian Warburton
1
@IanWarburton aucun appareil séparé ne nécessitera l'adresse IPv4 de votre ordinateur. (Si les deux appareils ne sont pas sur le même réseau, c'est plus compliqué)
cameloper
5

Dans Swift 5, il suffit d'appeler:

http://localhost:<port>/file_path 

mais vous devrez ajouter cette partie au projet Info.plist.

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
        <true/>
</dict>  

Sinon, cette erreur va se produire.

Cannot start load of Task <xx-xx>.<x> since it does not conform to ATS policy.

unixeO
la source
1
Cette réponse fonctionnera, mais ce n'est pas une bonne façon d'aborder cela. Apple décourage fortement les développeurs de charger arbitrairement des URL et votre application ne sera PAS acceptée dans le magasin si vous utilisez cette approche. Veuillez consulter cette réponse stackoverflow.com/questions/31254725/… pour savoir comment mettre correctement en liste blanche des domaines spécifiques dans votre application
SamG
1
Bien, n'utilisez cette approche que pour le développement.
unixeO