关于 log-server-port 的 Appcelerator Titanium 构建错误掩盖了真正的错误

Appcelerator Titanium build error about log-server-port masks the real error

这是一个相对较小的问题,我找不到关于此问题的任何其他记录,但它花费了我好几个小时的时间。我正在考虑打开一个关于这个错误的 Appcelerator Jira 票证,所以在我这样做之前欢迎任何反馈。问题:除了我在下面写的以外,还有其他解决方法吗?有哪些更好的方法来记录实际错误?

环境

Titanium SDK:7.0.2.GA Javascript引擎:V8 平台和版本:iOS 11.2 设备详细信息:iOS 模拟器(iPhone 7+) 主机操作系统:OS X 10.13 64 位 节点版本:7.10.0 钛 CLI:5.0.14 Npm 版本:4.2.0

描述

当构建一个 iOS 应用程序并且连接到 iOS 日志服务器时出现问题,它总是输出 "Another process is currently bound to port xxxxx" 即使存在另一个服务器连接问题,例如端口不存在。

解决方法

通过记录 sdk 本身的实际错误(在 determineLogServerPort 函数中的 ~/Library/Application Support/Titanium/mobilesdk/osx/7.0.2.GA/iphone/cli/commands/_build.js)找出真正的问题。

重现步骤

  1. 使用服务器创建不同类型的错误。例如,我的 /etc/hosts 文件没有 127.0.0.1 localhost 的条目,因此实际的节点错误是 'ENOTFOUND'.
  2. 使用 appc ti new 创建一个新的 Titanium 应用程序。
  3. 使用 appc ti build -p ios
  4. 构建

实际结果

使用以下文本构建错误:

[ERROR] Another process is currently bound to port 27973
[ERROR] Set a unique <log-server-port> between 1024 and 65535 in the <ios> section of the tiapp.xml

预期结果

更详细的错误。 IE。类似于:

Failed to create/connect to log server port with error "[error given by node net package]". 其次是建议的解决方案。例如,如果节点错误是 EADDRINUSE,那么您仍然可以使用现有的错误消息。但如果是另一个错误,请相应地记录,以便用户获得解决问题的最佳信息。

请确保您正在执行具有相同应用名称和 ID 的应用。 如果有变化,请从设备中删除应用程序并重新构建。

我在这里用appcelerator开票:https://jira.appcelerator.org/browse/TIMOB-25872

他们刚刚将其标记为已关闭,因此有望包含在下一个 sdk 版本中。

关闭当前模拟器运行并重试 当 xcode 打开模拟器时,我遇到了这样的问题

我的解决方案是 appcelerator https://jira.appcelerator.org/browse/TIMOB-25872 上的 JIRA 票证中提到的解决方案 https://jira.appcelerator.org/browse/TIMOB-25872

我最近搬到了一个新的 Mac 并迁移了所有内容,它创建了我的主机文件的副本并重命名它但没有更新主文件,因此它没有引用其中的本地主机。解决此问题后,它又可以正常构建了。

以下是主机文件中的内容。

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1   localhost
255.255.255.255 broadcasthost
::1             localhost

希望对某人有所帮助,乍一看没有在 JIRA 上看到答案。