gpt4 book ai didi

ios - Xcode 8 本地化导入崩溃

转载 作者:可可西里 更新时间:2023-11-01 03:08:24 26 4
gpt4 key购买 nike

当我为我的项目导入本地化时,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 异常 hell 。从好的方面来说,我目前的崩溃似乎是在它完成工作之后发生的,所以我能够继续工作。

有很多事情可能出错并导致导入崩溃。通常 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

关于ios - Xcode 8 本地化导入崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41339751/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com