繁体   English   中英

在Xcode中运行iOS项目之前,先运行python HttpServer

[英]Run a python HttpServer before run a iOS project in Xcode

我试图在运行iOS项目之前运行http服务器。 我在Run Script添加了脚本python -m SimpleHTTPServer 9527 在此处输入图片说明 当我在终端中运行它可以,但是当我单击Xco​​de中的Run按钮时,它像

在此处输入图片说明

当我停止项目时,Xcode显示了一些错误日志:

在0.0.0.0端口9527上提供HTTP服务...追溯(最近一次调用为最后一次):文件“ /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/runpy.py”,第162行,在_run_module_as_main“ main ”,fname,loader,pkg_name中)文件“ /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/runpy.py”,第72行,在run_globals文件中的_run_code exec代码中“ /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/SimpleHTTPServer.py”,行235,在test()文件“ /System/Library/Frameworks/Python.framework/Versions/2.7”中/lib/python2.7/SimpleHTTPServer.py”,测试BaseHTTPServer.test(HandlerClass,ServerClass)文件“ /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/BaseHTTPServer”中的第231行。 py”,第599行,在测试httpd.serve_forever()文件中,“ / System / Library / Frameworks / Python.framework / Versions / 2.7 / lib / python2.7 / SocketServer.py”,第236行,在serve_forever poll_interval中,文件“ /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/So cketServer.py“,行_eintr_retry中的第155行return func(* args)KeyboardInterrupt

请帮助或尝试给出一些想法来实现这一目标。 提前致谢。

您的构建仍保留在此阶段中,因为您正在执行的命令直到您请求执行时才会终止。 Web服务器很可能正常运行,但是Xcode正在等待它终止,直到您单击“停止”按钮,它才会执行。

当您在Python中停止内置的Web服务器时,看到的堆栈跟踪是正常的。 如果在使用Terminal时使用CTRL + C退出,则会看到类似的消息。

通常,构建的“执行外壳”阶段应运行执行任务的命令,然后自行退出,但是,如果要使Web服务器在构建期间运行,则需要使用两个阶段。 在构建开始时的一个阶段启动Web服务器并将其派生,而在构建结束时的另一阶段将终止Web服务器。 虽然根据我的经验,变量不会在构建阶段之间持久存在,但是您可以将PID写入文件,然后在以后的阶段中读取它。

除了此解决方案,我建议您重新考虑是否需要在构建过程中运行服务器。 如果您将来开始使用Continuous Integration中的某些功能,或者只是想同时运行多个版本,那么分配端口号的其他复杂性将带来挑战。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM