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

时间:2016-01-06 18:58:42

标签: ios xcode localization xib

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

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-xib都可以在模拟器上的base.lproj文件夹中找到,但不是在真实设备上。这些文件在真实设备上丢失了。

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

我已经做了一个干净的,清理了Build文件夹,派生数据文件夹,当然也从手机中删除了应用程序。我也重新启动了所有东西(正如很多人建议的那样)。没有任何效果。

什么可以阻止Xcode将base.lproj文件夹中的文件复制到真实设备? (当复制en.lproj和de.lproj中的xib时)

1 个答案:

答案 0 :(得分:1)

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

  1. 我从“复制捆绑资源”构建阶段
  2. 中删除了所有本地化的xib文件
  3. 我从项目中删除了所有本地化的xib文件
  4. 我将base.lproj文件夹中的所有xib文件复制回父文件夹
  5. 我删除了包含内容(en.lproj,...)
  6. 的所有本地化文件夹
  7. 我将文件逐个添加到项目中并再次对其进行本地化