微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ios – Xcode 8本地化导入崩溃

当我导入项目的本地化时,Xcode(8.1)崩溃了.
它在我导出时崩溃,然后导入相同的xliff文件而不进行修改.

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

以下是完整的崩溃报告http://pastebin.com/JsJFeCqB.有关此的任何提示解决方法吗?

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)

解决方法

这个问题杀了我.该工具可以/应该工作,让你的生活更轻松,但事实并非如此.我在夏天遇到了这个问题,并在第一个项目符号中使用了info.plist提示进行修复,但我最近更新了项目,我又回到了xliff例外地狱.从好的方面来说,我目前的崩溃似乎是在它完成工作之后发生的,所以我能够继续工作.

有很多事情可能会出错并导致导入崩溃.通常Xcode只是闪烁不存在.如果你想在崩溃前看到一些信息,请使用xcodebuild:

xcodebuild -verbose -importLocalizations -localizationPath "lang.xliff" -project ./myProject.xcodeproj

>本地化时,请勿将语言直接添加到info.plist.而是将InfoPlist.Strings文件添加到项目中并将语言添加到项目中.您可能需要在每个lang.lproj文件夹中手动创建该文件.确保在base.lproj以外的任何lang.lproj文件夹中没有info.plist文件.
>本地化Settings.bundle时,请创建lang.lproj文件夹.创建Root.strings文件时,大小写很重要.它必须是“Root.strings”,否则它可能适用于iOS,但它不适用于iOS模拟器.
>环顾你的项目结构.使用崩溃工具后,最终会在错误的位置放置一堆文件.您可以在项目的根组中拥有Localized.Strings文件.删除那些.
>仅使用base.lproj而不是en.lproj,因此如果在项目中找到它们,请手动删除en.lproj文件.
> XLIFF文件确实需要格式良好,但我不认为这会导致崩溃.
>不适合你,但据说在Xcode 7中有一个特定的崩溃修复,所以请确保你是最新的,以避免那个,至少.

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐