国际化后发布到应用商店的ios swift应用文本丢失

问题描述 投票:1回答:1

这里是第一篇文章,也是一位业余时间程序员。简而言之,我通过添加法语和西班牙语的翻译来使我的应用程序国际化,并且在模拟器和Iphone 6(版本12.4.6)上进行了测试,没有问题,没有错误或应用程序崩溃。

[当我发布该应用程序时,它就被批准了。当我从应用程序商店更新中用另一部手机更新了该应用程序时,它丢失了所有NSLocalized文本(因此似乎链接断开了),并且带有占位符的文本字段现在具有黑色背景。这使该应用程序无法使用。我匆匆将版本退回到一个本地化版本,但是它似乎继承了相同的问题,但是由于大多数字符串都是硬编码的(不是NSlocalized),所以没有意义。它正在工作的电话仍可以回滚。不在使用中的电话仍无法解决同一问题。

我认为没有任何代码可以帮助您。通常在反馈后,以防其他人碰巧或提出解决建议。

认为我犯了一个错误,我在另一台iphone 6s(13.4版)上进行了测试,但我仍然感到困惑。要求其他人在其Iphone XS 13.4版上对其进行检查,并且它也没有解决同一问题。

要本地化,我在应用程序的固定文本中添加了本地化,该应用程序为我填写的语言创建了main.strings文件。我还添加了可本地化的字符串文件,然后完成了它们。这突显了我没有将应用程序设置为具有国际字符串,因此仔细检查并重新编码了来自国际化字符串文件的硬编码和程序化文本。

就像更新1.2损坏了应用程序一样,所以不确定如何解决。似乎由于某些原因,使用“ NSLocalizedString(“ text。”,comment:“ this is comment”)的文本查找找不到文本。我不了解它如何在测试中完美发挥作用,但在部署时却无法发挥作用。

我为解决问题所做的努力:考虑到该问题是基于电话的,因为它可以在另一部相同的电话上工作,所以我尝试关闭该应用程序,重新启动电话,卸载并重新安装该应用程序,但无济于事。我也在其他手机上尝试过。

软件配置:XCODE:版本11.3.1(11C504)Macbook:Macbook air 13英寸:10.14.5测试电话:Iphone 6,版本12.4.6,MG4F2X / A其他Phone应用程序更新适用于-iPhone 6s,版本13.4,型号MN0W2X / A电话应用无法正常运行:Iphone 6s,版本13.4,型号MN0W2X / A和Iphone XS,版本13.4]

提前谢谢。

Screenshot of app with text working

Screenshot of app with loss of text

ios swift xcode internationalization nslocalizedstring
1个回答
0
投票

原来这是一个n00b问题。令我感到困惑的是,它只能在某些手机上运行,​​而不能在没有意义的手机上运行,​​并且仍然保留一些文本,而有些则不能。

黑暗模式是答案。因此,懒惰的解决方法是将所有文本更改为黑色,这解决了我的问题,甚至可以在电话和模拟器上进行验证。好极了!

最终,您可以选择退出暗模式(以编程方式或向info.plist添加密钥),尽管不建议这样做,因为它可以更好地通过包含可用主题来改善应用程序的功能。在线上有很多有关如何执行此操作的资料,因此,这里仅将其复制为简单的plist方法。

Info.plist方法-在应用程序info.plist中添加键UIUserInterfaceStyle并将其值设置为Light或Dark。这会将应用默认样式覆盖为您提供的值。

下面的上下文和说明。显然:“黑暗模式是iOS 13中引入的,并在WWDC 2019上宣布。它为iOS添加了更暗的主题,并允许您为应用程序执行相同的操作”。我知道暗模式,并在手机上启用了暗模式(并且被遗忘了),但没有意识到您必须更改应用程序以适应这种情况(成为一名业余程序员)。一个大提示应该是文本字段为黑色,或者保留所有非标准彩色文本。

我不记得将应用程序背景从默认设置更改为白色,但是我必须这样做。加上默认的字体颜色,因此在启用“暗模式”时,所有文本均更改为白色。就像我说的,n00b。让我们将其添加到我经常需要完成的标准测试中。

感谢您的收听。

暗模式

© www.soinside.com 2019 - 2024. All rights reserved.