Unicode 规范化不适用于 ASCII-8BIT

Muh*_*mar 45 ios dart flutter

13: from /usr/local/bin/pod:23:in `<main>'
12: from /usr/local/bin/pod:23:in `load'
11: from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.0.beta.2/bin/pod:55:in `<top (required)>'
10: from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.0.beta.2/lib/cocoapods/command.rb:52:in `run'
9: from /Library/Ruby/Gems/2.6.0/gems/claide-1.0.3/lib/claide/command.rb:324:in `run'
8: from /Library/Ruby/Gems/2.6.0/gems/claide-1.0.3/lib/claide/command.rb:337:in `rescue in run'
7: from /Library/Ruby/Gems/2.6.0/gems/claide-1.0.3/lib/claide/command.rb:396:in `handle_exception'
6: from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.0.beta.2/lib/cocoapods/command.rb:66:in `report_error'
5: from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.0.beta.2/lib/cocoapods/user_interface/error_report.rb:30:in `report'
4: from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.0.beta.2/lib/cocoapods/user_interface/error_report.rb:105:in `markdown_podfile'
3: from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.0.beta.2/lib/cocoapods/config.rb:226:in `podfile_path'
2: from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.0.beta.2/lib/cocoapods/config.rb:166:in `installation_root'
1: from /Library/Ruby/Gems/2.6.0/gems/cocoapods-1.11.0.beta.2/lib/cocoapods/config.rb:166:in `unicode_normalize'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/unicode_normalize/normalize.rb:141:in `normalize': Unicode Normalization not appropriate for ASCII-8BIT (Encoding::CompatibilityError)
Run Code Online (Sandbox Code Playgroud)

我面临这些错误,不知道为什么当我运行 pod update 时会出现此错误。有什么解决办法吗??

小智 135

这个问题出现在 Cocoapods 1.11.0 中,许多人已经注意到回滚到 1.10.2 修复了该问题。但最初的问题来自于终端中设置的错误区域设置。它必须是基于 UTF-8 的语言环境。

您可以在终端中运行“locale”来检查当前的区域设置。它应该是这样的:

LANG="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_CTYPE="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_ALL=
Run Code Online (Sandbox Code Playgroud)

如果您设置了基于 ascii 的语言环境或“C”(这也是一个 ascii 语言环境),则运行

export LC_ALL=en_US.UTF-8
Run Code Online (Sandbox Code Playgroud)

如果您更喜欢其他语言环境(不是 en_US),请运行locale -a以查看可用选项列表并选择您喜欢的 UTF-8 语言环境。

实际上 CocoaPods 警告需要 UTF-8 语言环境:

WARNING: CocoaPods requires your terminal to be using UTF-8 encoding.
    Consider adding the following to ~/.profile:

    export LANG=en_US.UTF-8
Run Code Online (Sandbox Code Playgroud)

但在 1.11.0 之前,仅当您使用名称中包含非 ascii 符号(例如中文)的 pod 时才需要这样做,但从 1.11.0 开始,它变得更加严格。Cocoapods GitHub 上有关于它的讨论: https://github.com/CocoaPods/CocoaPods/issues/10939

  • 这应该是标记的答案。谢谢 (7认同)
  • 不幸的是,这没有帮助。“locale”命令打印一切正确,但我仍然在使用 Google Dependency Resolver 构建 Unity 时遇到此错误。找不到问题所在,所以降级了CocoaPods。 (3认同)

dot*_*dot 104

维亚切斯拉夫·科尔穆什金的回答对我有用。

具体来说,我所做的是:

  • 打开终端
  • 输入open ~/.zshrc(如果不使用 zsh,则输入 .profile)
  • 添加export LC_ALL=en_US.UTF-8并保存文件
  • 返回终端
  • 类型source ~/.zshrc
  • 类型locale

==> 区域设置现在将被修复

==> 您现在可以安全地运行pod updatepod install

  • 谢谢,在我创建 .profile 并添加此行后,这些步骤解决了我的问题。我是通过 Unity for iOS 进行构建的。 (2认同)

Est*_*pez 59

我这样做修复了它:

我完全卸载了cocoapods(我的版本是1.11.0)

gem list --local | grep cocoapods

cocoapods-core (1.11.0) cocoapods-deintegrate (1.0.5) cocoapods-downloader (1.5.0) cocoapods-plugins (1.0.0) cocoapods-search (1.0.1) cocoapods-trunk (1.6.0) cocoapods-尝试(1.2.0)

sudo gem uninstall cocoapods

sudo gem uninstall cocoapods-core

sudo gem uninstall cocoapods-deintegrate

sudo gem uninstall cocoapods-downloader

sudo gem uninstall cocoapods-plugins

sudo gem uninstall cocoapods-search

sudo gem uninstall cocoapods-trunk

sudo gem uninstall cocoapods-try

然后我安装了cocoapods版本1.10.1(如果需要,您可以尝试使用1.11.0以下的更多版本)

sudo gem install cocoapods -v 1.10.1

  • 从 Unity 版本 2020.3.14f1 编译 iOS 游戏时遇到此问题。发生在我升级 cocoapods / XCode / MacOS 后。这解决了它。 (2认同)

小智 13

我遇到了同样的问题,但是使用React Native,以下内容对我有用(直接):

LANG=en_US.UTF-8 pod install
Run Code Online (Sandbox Code Playgroud)


Sre*_* VR 11

第一个解决方案是删除当前版本的 cocoapods 并回滚到 1.10.2

要删除当前版本,您可以运行:

sudo gem uninstall cocoapods
Run Code Online (Sandbox Code Playgroud)

然后你可以通过以下命令安装1.10.2版本的cocoa pods:

sudo gem install cocoapods -v 1.10.2
Run Code Online (Sandbox Code Playgroud)

第二种解决方案是,使用以下命令通过 Homebrew 安装 cocoapods:

brew install cocoapods
Run Code Online (Sandbox Code Playgroud)