0

我正在尝试在运行 iOS 项目之前运行 http 服务器。我 python -m SimpleHTTPServer 9527Run Script. 在此处输入图像描述 当我在终端中运行它时没问题,但是当我Run在 Xcode 中单击按钮时,它停止了

在此处输入图像描述

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

在 0.0.0.0 端口 9527 上提供 HTTP ... Traceback(最近一次调用最后一次):文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/runpy.py”,第 162 行,在 _run_module_as_main “", fname, loader, pkg_name) File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/runpy.py", line 72, in _run_code exec code in run_globals File "/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”,第 231 行,在测试 BaseHTTPServer.test(HandlerClass, ServerClass) 文件“/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/BaseHTTPServer.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 /框架/Python。framework/Versions/2.7/lib/python2.7/SocketServer.py",第 155 行,在 _eintr_retry 返回 func(*args) KeyboardInterrupt

请帮助或尝试提供一些想法如何实现这一目标。提前致谢。

4

1 回答 1

1

您的构建仍在此阶段内,因为您正在执行的命令在您请求之前不会终止。最有可能的是,Web 服务器运行正常,但是 Xcode 正在等待它终止,直到您单击“停止”按钮它才会这样做。

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

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

除了这个解决方案,我建议重新考虑是否需要在构建过程中运行服务器。如果您将来开始使用持续集成中的某些内容,或者只想同时运行多个构建,分配端口号的额外复杂性将带来挑战。

于 2018-05-07T14:57:39.967 回答