使用 Apple 登录按钮标题始终显示“SIGN_IN_WITH_APPLE”

Posted

技术标签:

【中文标题】使用 Apple 登录按钮标题始终显示“SIGN_IN_WITH_APPLE”【英文标题】:Sign in with Apple button title always displays "SIGN_IN_WITH_APPLE" 【发布时间】:2020-09-12 00:21:39 【问题描述】:

我有一个应用程序本地化为两种语言:英语和立陶宛语。我正在使用 Apple 功能实现登录,除了按钮标题外,一切都运行良好,我正在尝试本地化。

我正在按照文档中的建议创建按钮:let asiButton = ASAuthorizationAppleIDButton(type: .signIn, style: .black) 我在Localizable.strings 中为两种语言输入了“SIGN_IN_WITH_APPLE”。当语言设置为立陶宛语时,按钮显示正确的字符串,但是当我将语言更改为英语时,按钮始终显示SIGN_IN_WITH_APPLE(如屏幕截图所示)。

Screenshot

由于某种原因,它似乎忽略了我为英文版本输入的 Localizable.strings 的值(尽管所有其他字符串都按预期工作),因为我可以完全删除它并获得相同的结果。

我尝试使用asiButton.accessibilityLabel 直接通过代码获取和设置按钮的标签,但这会返回nil 并设置它会产生相同的结果,即带有SIGN_IN_WITH_APPLE 标题的按钮。

任何想法都将不胜感激!

【问题讨论】:

【参考方案1】:

不要为此使用 Localizable.strings。 ASAuthorizationAppleIDButton 已经自动本地化。

【讨论】:

其实如果你尝试自己设置这个按钮的文字,苹果很可能会拒绝这个应用。 如果我从两个 Localizable.strings 中删除它,它仍然显示“SIGN_IN_WITH_APPLE”。这是否应该暗示应用程序中的本地化实现存在更深层次的问题?我非常有信心实现是可靠的,我们在测试或生产中都没有遇到任何问题。但我猜那是下一个寻找线索的嫌疑人…… 是的,您应该会自动看到正确的标题。我从来没有见过这样说 SIGN_IN_WITH_APPLE。我看到另一个类似你的问题:***.com/questions/60125468/… 但我无法重现该问题。 我正在使用ASAuthorizationAppleIDButton,但是当我将模拟器的语言更改为荷兰语时,它没有本地化为荷兰语。有什么想法吗? @马特【参考方案2】:

我也遇到过同样的问题。 我将"SIGN_IN_WITH_APPLE" = "Sign in with Apple"; 对添加到链接到English 文件的Localizable.strings 中,并且一切正常。

这是一个答案,但我想这条消息应该在 cmets 中。抱歉,但现在我不允许发表评论,因为声誉计数低..)

【讨论】:

以上是关于使用 Apple 登录按钮标题始终显示“SIGN_IN_WITH_APPLE”的主要内容,如果未能解决你的问题,请参考以下文章

扑动 google_sign_in 崩溃:__exceptionPreprocess + 294

如何更改“Sign In with Apple”按钮的宽度?

在 iOS 中,如何创建一个始终位于所有其他视图控制器之上的按钮?

SignIn with Apple 的自定义圆形按钮

如何从 UI Test 访问 Apple Id“登录”对话框?

始终显示登录屏幕