Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Xcode导出本地化抛出错误“;“参数列表太长”;_Ios_Xcode_Build - Fatal编程技术网

Ios Xcode导出本地化抛出错误“;“参数列表太长”;

Ios Xcode导出本地化抛出错误“;“参数列表太长”;,ios,xcode,build,Ios,Xcode,Build,关于Xcode本地化过程,我有一个非常奇怪的错误要分享。我将尽可能多地分享法律上可能多的细节 我正试图从Xcode导出一个XLIFF文件,通过“编辑器>导出本地化”发送给我们的翻译人员。但是,这会立即引发消息错误: The operation couldn't be completed. Argument list too long 这确实令人困惑,因为我在任何地方都找不到更详细的日志(我已经尝试过检查我的Console.app)。所以,我花了相当多的时间在谷歌上搜索——但毫无用处。我找不到类

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

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

The operation couldn't be completed. Argument list too long
这确实令人困惑,因为我在任何地方都找不到更详细的日志(我已经尝试过检查我的Console.app)。所以,我花了相当多的时间在谷歌上搜索——但毫无用处。我找不到类似的案例。只有当我尝试导出以进行本地化时,才会发生错误本身。我可以很好地构建和运行应用程序

事实
  • 我正在macOS Sierra 10.12.5上使用Xcode 8.2
  • 只有当我尝试从本地化导出时,才会发生错误。当我通过
    xcodebuild-exportLocalizations
    运行本地化过程时也是如此
  • 我可以很好地构建和运行应用程序。(我相信)我的标题搜索路径没有问题
  • 尝试
    • 认为代码中有错误,所以我尝试在CI中运行导出过程(通过
      xcodebuild
      命令)。不知怎么的,它起作用了。作为记录,我使用的Bitrise CI与我的系统具有相同的堆栈(Xcode 8.2.x,macOS 10.12)
    • 要求同事在他们的机器上运行导出过程,他们也有同样的错误
    • 这让我觉得配置一定有问题。因此,我做了一个独立的项目来确认导出过程始终失败。事实证明,它工作得很好
    所以,我目前的假设是:
    • 代码中可能有错误,而且
    • 可能有一些工具/软件(大多数iOS工程师都安装了这些工具/软件)会导致错误(因为CI完成得很好)
    我不知道为什么CI可以很好地运行导出过程,也不知道什么时候它可能会突然停止运行(就像我们的本地机器一样)


    谢谢你在这件事上的帮助。谢谢大家!

    我也在苹果开发者论坛上问过这个问题,这里是链接:

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

    像这样的bug有一个“有趣”的地方,那就是它们取决于你把项目放在哪里。如果项目位于主目录的顶部,情况可能会正常,但如果项目嵌套在子目录的深处,则会失败。 这还建议了一种潜在的解决方法,即在目录层次结构中将项目进一步上移

    最后,您应该明确地对此提出一个bug。我相信我们以前见过这种情况(
    r.30703294
    ),但您的报告将有助于强调这会给该领域的开发人员带来问题。请公布你的错误号,仅供记录

    几天前,在我阅读这个答案之前,我通过Xcode删除了一些文件夹(仅删除引用),成功地实现了导出。起初我怀疑我删除的文件夹中存在无效格式,但当我尝试删除其他文件夹时,导出过程运行正常


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

    这里似乎是您的答案(我想这也是您的问题:D),这有效吗?因此,请用解决方法和问题的来源回答您自己的问题。谢谢!的确,这是我的问题哈哈。
    ~ $ 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