首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Xcode 8本地化导入崩溃

Xcode 8本地化导入崩溃
EN

Stack Overflow用户
提问于 2016-12-27 13:56:29
回答 3查看 1.1K关注 0票数 9

当我为我的项目导入本地化时,Xcode (8.1)崩溃了。当我导出并导入相同的xliff文件而不做任何修改时,它也会崩溃。

下面是xliff文件:http://ge.tt/7J5UY3i2

这是完整的崩溃报告http://pastebin.com/JsJFeCqB。对此有什么建议或解决方法吗?

代码语言:javascript
复制
Application Specific Information:
ProductBuildVersion: 8B62
UNCAUGHT EXCEPTION (NSInvalidArgumentException): -[Xcode3VariantGroup addToTargetDefaultResourcesBuildPhase:]: unrecognized selector sent to instance 0x7fe69615cba0
UserInfo: (null)
Hints: None

Backtrace:
  0   __exceptionPreprocess (in CoreFoundation)
  1   DVTFailureHintExceptionPreprocessor (in DVTFoundation)
  2   objc_exception_throw (in libobjc.A.dylib)
  3   -[NSObject(NSObject) doesNotRecognizeSelector:] (in CoreFoundation)
  4   ___forwarding___ (in CoreFoundation)
  5   _CF_forwarding_prep_0 (in CoreFoundation)
  6   __81+[IDELocalizationWork fileReferenceStreamForName:directoryPath:superitem:target:]_block_invoke (in IDEFoundation)
  7   __33-[IDEStream(IDEStreamMonad) map:]_block_invoke (in IDEFoundation)
  8   __24-[_IDEStreamMap onNext:]_block_invoke_4 (in IDEFoundation)
  9   -[_DVTTimeSlicedMainThreadOrderedUniquingWorkQueue _processWorkItemsWithDeadline:] (in DVTFoundation)
 10   -[DVTTimeSlicedMainThreadWorkQueue _processWithDeadline:] (in DVTFoundation)
 11   -[_DVTTimeSlicedMainThreadActiveWorkQueues _processWorkQueuesOnDeadline] (in DVTFoundation)
 12   __NSFireDelayedPerform (in Foundation)
 13   __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ (in CoreFoundation)
 14   __CFRunLoopDoTimer (in CoreFoundation)
 15   __CFRunLoopDoTimers (in CoreFoundation)
 16   __CFRunLoopRun (in CoreFoundation)
 17   CFRunLoopRunSpecific (in CoreFoundation)
 18   RunCurrentEventLoopInMode (in HIToolbox)
 19   ReceiveNextEventCommon (in HIToolbox)
 20   _BlockUntilNextEventMatchingListInModeWithFilter (in HIToolbox)
 21   _DPSNextEvent (in AppKit)
 22   -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] (in AppKit)
 23   -[DVTApplication nextEventMatchingMask:untilDate:inMode:dequeue:] (in DVTKit)
 24   -[NSApplication run] (in AppKit)
 25   NSApplicationMain (in AppKit)
 26   start (in libdyld.dylib)
EN

回答 3

Stack Overflow用户

发布于 2017-02-02 11:50:31

这个问题要了我的命。这个工具可以/应该可以让你的生活变得更轻松,但它就是不能。我在夏天遇到了这个问题,并在第一个项目中用info.plist提示解决了它,但我最近更新了这个项目,我又回到了xliff异常地狱。好的一面是,我目前的崩溃似乎是在它完成工作后发生的,所以我能够继续工作。

有很多事情可能会出错并导致导入崩溃。通常,Xcode只是眨眼就消失了。如果你想在崩溃前看到一些信息,可以使用xcodebuild:

代码语言:javascript
复制
xcodebuild -verbose -importLocalizations -localizationPath "lang.xliff" -project ./myProject.xcodeproj

  • 本地化时,不要将语言直接添加到info.plist中。而是将InfoPlist.Strings文件添加到项目中,并将语言添加到该文件中。您可能需要在每个lang.lproj文件夹中手动创建该文件。确保除base.lproj.
  • When本地化info.plist之外的任何lang.lproj文件夹中都没有info.plist文件,请创建您的lang.lproj文件夹。创建Root.strings文件时,大小写很重要。它必须是"Root.strings“,否则它可以在iOS上工作,但不能在项目结构中的iOS iOS上工作。在你使用崩溃工具后,你最终会在错误的位置得到一堆文件。您可以将Localized.Strings文件放在项目的根组中。删除这些文件。
  • 只使用base.lproj而不是en.lproj,所以如果您在项目中找到en.lproj文件,请手动将其删除。
  • XLIFF文件确实需要格式正确,但我不认为这会导致崩溃。
  • 不适合您,但假定Xcode7中修复了特定的崩溃,因此请确保您使用的是最新版本,至少可以避免该崩溃。

我有一些可以与xliff一起使用的python脚本。他们需要在一些脚本中更新源路径,但从长远来看,它们可能会有所帮助:https://github.com/danloughney/xliffHell

票数 10
EN

Stack Overflow用户

发布于 2017-01-02 19:22:04

其中一个字符串包含双引号。尝试在未翻译的XLIFF文件中将它们替换为",看看是否可以重新导入该文件。这只是一个胡乱猜测,我手头没有XLIFF8.1来尝试重现它,但这是我在XCode文件中注意到的唯一看起来不可靠的东西。

票数 0
EN

Stack Overflow用户

发布于 2019-09-15 15:03:39

另一个提示:确保您没有转换CFBundleName和CFBundleDisplayName。在导入的最后一步中,XCode将崩溃。此问题在XCode 10.3中仍然存在。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41339751

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档