未从文件夹 base.lproj 复制本地化的 XIB 文件

Localized XIB files not copied from folder base.lproj

我使用基本国际化和每种语言的可本地化字符串本地化了我所有的 xib 文件。我的本地化 xibs 的文件夹结构是例如像这样

base.lproj/LoginView.xib
de.lproj/LoginView.strings
en.lproj/LoginView.strings

在模拟器上一切正常!!在设备上我收到错误

Could not load NIB in bundle: 'NSBundle </var/mobile/Containers/Bundle/Application/FCAF9E1E-7871-4DC4-8B2B-0B83F94585F0/myApp.app> (loaded)' with name 'LoginView''

我使用以下命令检查了每个设备上可用的资源:

print(NSBundle.mainBundle().pathsForResourcesOfType("nib", inDirectory: nil))

在这里我看到所有的 base-xibs 都在模拟器的 base.lproj 文件夹中可用,但在真实设备上不可用。这些文件只是在真实设备上丢失了。

有效方法:在真实设备 xibs(!) 中,例如en.lproj 或 de.lproj 被复制,当我将每个本地化文件的可本地化字符串更改为 xib 时。

我已经进行了清理,清理了 Build 文件夹、派生数据文件夹,当然还删除了 phone 中的应用程序。我还重新启动了一切(正如许多人建议的那样)。没有任何效果。

什么可以阻止 Xcode 将 base.lproj 文件夹中的文件复制到真实设备? (因为 en.lproj 和 de.lproj 中的 xibs 被复制过来了)

我最终找到了一个在任何地方都找不到的解决方案。所以如果它可以帮助某人:

  1. 我从 "Copy Bundle Resources" 构建阶段删除了所有本地化的 xib 文件
  2. 我从项目中删除了所有本地化的 xib 文件
  3. 我将所有 xib 文件从 base.lproj 文件夹复制回父文件夹
  4. 我删除了所有包含内容(en.lproj、...)的本地化文件夹
  5. 我将文件一个一个添加到项目中,并再次本地化