Ios Xcode导出本地化抛出错误“;“参数列表太长”;
关于Xcode本地化过程,我有一个非常奇怪的错误要分享。我将尽可能多地分享法律上可能多的细节 我正试图从Xcode导出一个XLIFF文件,通过“编辑器>导出本地化”发送给我们的翻译人员。但是,这会立即引发消息错误:Ios Xcode导出本地化抛出错误“;“参数列表太长”;,ios,xcode,build,Ios,Xcode,Build,关于Xcode本地化过程,我有一个非常奇怪的错误要分享。我将尽可能多地分享法律上可能多的细节 我正试图从Xcode导出一个XLIFF文件,通过“编辑器>导出本地化”发送给我们的翻译人员。但是,这会立即引发消息错误: The operation couldn't be completed. Argument list too long 这确实令人困惑,因为我在任何地方都找不到更详细的日志(我已经尝试过检查我的Console.app)。所以,我花了相当多的时间在谷歌上搜索——但毫无用处。我找不到类
The operation couldn't be completed. Argument list too long
这确实令人困惑,因为我在任何地方都找不到更详细的日志(我已经尝试过检查我的Console.app)。所以,我花了相当多的时间在谷歌上搜索——但毫无用处。我找不到类似的案例。只有当我尝试导出以进行本地化时,才会发生错误本身。我可以很好地构建和运行应用程序
事实
xcodebuild-exportLocalizations
运行本地化过程时也是如此- 认为代码中有错误,所以我尝试在CI中运行导出过程(通过
命令)。不知怎么的,它起作用了。作为记录,我使用的Bitrise CI与我的系统具有相同的堆栈(Xcode 8.2.x,macOS 10.12)xcodebuild
- 要求同事在他们的机器上运行导出过程,他们也有同样的错误
- 这让我觉得配置一定有问题。因此,我做了一个独立的项目来确认导出过程始终失败。事实证明,它工作得很好李>
- 代码中可能有错误,而且
- 可能有一些工具/软件(大多数iOS工程师都安装了这些工具/软件)会导致错误(因为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