【问题标题】:Xcode export localization throws error "Argument list too long"Xcode 导出本地化抛出错误“参数列表太长”
【发布时间】:2017-11-06 04:52:01
【问题描述】:

我有一个关于 Xcode 本地化过程的非常奇怪的错误要分享。我将尝试在法律上尽可能多地分享细节。

我正在尝试从 Xcode 导出 XLIFF 文件以通过“编辑器 > 本地化导出”发送给我们的翻译人员。但是,这会立即引发错误消息:

The operation couldn't be completed. Argument list too long

这确实令人困惑,因为我无法在任何地方找到更详细的日志(我已经尝试检查我的 Console.app)。所以,我花了很多时间在谷歌上搜索——无济于事。我找不到像这样的类似案例。错误本身仅在我尝试导出以进行本地化时发生。我可以很好地构建和运行应用程序。

事实

~ $ xcodebuild -version
Xcode 8.2
Build version 8C38
~ $ xcode-select -version
xcode-select version 2347.
~ $ echo $PATH
/Users/david.christiandy/.rbenv/shims:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/david.christiandy/arctools/arcanist/bin:/usr/local/go/bin:/Library/Frameworks/Mono.framework/Versions/Current/Commands
  1. 我在 macOS Sierra 10.12.5 上使用 Xcode 8.2。
  2. 该错误仅在我尝试从本地化导出时发生。当我通过xcodebuild -exportLocalizations 运行本地化过程时也是如此。
  3. 我可以很好地构建和运行应用程序。 (我相信)我的标题搜索路径没有问题。

尝试

  • 认为代码有问题,所以我尝试在 CI 中运行导出过程(通过xcodebuild 命令)。不知何故,它正在工作。作为记录,我使用的 Bitrise CI 与我的系统具有相同的堆栈(Xcode 8.2.x,macOS 10.12)
  • 请同事在他们的机器上运行导出过程,他们也有同样的错误。
  • 这让我认为配置一定有问题。所以我做了一个独立的项目来确认导出过程始终失败。事实证明,它工作得很好!

所以,我目前得到的假设是:

  • 代码中可能有问题,并且
  • 可能存在导致错误的工具/软件(我们的大多数 iOS 工程师已安装)(因为 CI 完成得很好)。

我不知道为什么 CI 可以很好地运行导出过程,也不知道它什么时候会突然停止运行(就像我们的本地机器一样)。

感谢您对此事的任何帮助。谢谢!

【问题讨论】:

  • 这似乎是你的答案(我认为这也是你的问题:D)forums.developer.apple.com/thread/86762,这有效吗?所以,请用解决方法和问题的根源回答您自己的问题。
  • 谢谢!确实,这是我的问题哈哈。

标签: ios xcode build


【解决方案1】:

我也在苹果开发者论坛上问过这个问题,链接如下:https://forums.developer.apple.com/thread/86762

“参数列表太长”听起来像E2BIG,当您尝试运行具有巨大参数列表的子进程时会得到这种情况(我相信当前的限制是 256 KiB)。我怀疑 Export for Localizations 正在运行某种命令行工具来完成这项工作(可能是 extractLocStrings 工具,你会发现它潜伏在 Xcode 的应用程序包中)并将其完整路径传递给项目中的每个文件。根据你有多少文件以及这些路径有多长,很容易遇到这样的问题。

此类错误的一个“有趣”之处在于它们取决于您放置项目的位置。如果项目位于主目录的顶部,事情可能会奏效,但如果它嵌套在子目录的深处,则可能会失败。 这也暗示了一种潜在的解决方法,即将您的项目在目录层次结构中进一步向上移动。

最后,您绝对应该提交一个关于此的错误。我相信我们之前已经看到过这种情况 (r. 30703294),但您的报告将有助于强化这给该领域的开发人员带来了问题。请发布您的错误编号,以供记录。

几天前,在我阅读此答案之前,我设法通过 Xcode 删除一些文件夹(仅删除引用)来使导出工作。最初我怀疑我删除的文件夹中存在无效格式,但是当我尝试删除其他文件夹时,导出过程正常。

我也尝试使用 Xcode 9 导出字符串,但没有遇到问题。所以希望这个错误只适用于 Xcode 8.3.3 及以下版本。

【讨论】:

    猜你喜欢
    • 2019-03-25
    • 1970-01-01
    • 1970-01-01
    • 2021-11-16
    • 2017-10-02
    • 2017-11-23
    • 2015-06-13
    • 2021-01-14
    • 2019-11-15
    相关资源
    最近更新 更多