3

在 MacOS 10.13.1 中导出 ipa 或上传到 App Store 时 Xcode 9.0.1 崩溃。

升级到 Xcode 9.1 (9B55) 后,导出时显示如下错误。

Stripping extended attributes failed.
"/usr/bin/xattr -crs /var/folders/mm/h01jykrs7gv9w7jjb0yt609w0000gp/T/XcodeDistPipeline.Uay/Root/Payload/GitSmartHome.app" exited with a non-zero status. The /usr/bin/xattr tool may be damaged.

看来 xattr 已损坏,在终端中运行 xattr 时,提示以下错误。

xattr
Traceback (most recent call last):
  File "/usr/bin/xattr-2.7", line 7, in <module>
    from pkg_resources import load_entry_point
  File "build/bdist.macosx-10.13-intel/egg/pkg_resources/__init__.py", line 3019, in <module>
  File "build/bdist.macosx-10.13-intel/egg/pkg_resources/__init__.py", line 3003, in _call_aside
  File "build/bdist.macosx-10.13-intel/egg/pkg_resources/__init__.py", line 3032, in _initialize_master_working_set
  File "build/bdist.macosx-10.13-intel/egg/pkg_resources/__init__.py", line 655, in _build_master
  File "build/bdist.macosx-10.13-intel/egg/pkg_resources/__init__.py", line 963, in require
  File "build/bdist.macosx-10.13-intel/egg/pkg_resources/__init__.py", line 849, in resolve
pkg_resources.DistributionNotFound: The 'xattr==0.6.4' distribution was not found and is required by the application

如何修复它或重新安装 xattr?

4

7 回答 7

6

无论您的路径如何, Xcode 总是查看/usr/bin/xattr(因为您可能在其他地方安装了工作 xattr)。

输入/usr/bin/xattr给出了这个输出:

/usr/bin/xattr
Traceback (most recent call last):
  File "/usr/bin/xattr-2.7", line 7, in <module>
    from pkg_resources import load_entry_point
  File "build/bdist.macosx-10.12-intel/egg/pkg_resources/__init__.py", line 72, in <module>
  File "build/bdist.macosx-10.12-intel/egg/packaging/requirements.py", line 59, in <module>
TypeError: __call__() takes exactly 2 arguments (1 given)

你需要让你的系统的 python 再次快乐。我似乎在某个时候打破了我的。不知道怎么做。

我运行以下内容并得到一个充满错误的屏幕。

/usr/bin/python -m pip install -U setuptools

之后,我又跑/usr/bin/xattr了,它是沉默的。这似乎是对它是否健康的测试。

我的 XCode 现在导出没有错误。

关键是你的 /usr/bin/xattr 会给你一些错误,无论是权限还是其他 python/设置问题。您需要修复它以使您的构建再次工作。

编辑:对于那些有权限问题的人,运行这个:

sudo chown -R $USER:$(id -g) /Users/$USER/Library/Python
于 2017-11-01T10:47:05.807 回答
3

我也有这个问题。事实证明,这在我 zapped 之后开始发生,/Library/Python/2.7我删除了/Library/Python/2.7/site-packages/Extras.pth. 这是里面的内容:

/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python
/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC

这些目录中的第一个包含一个旧版本的 xattr,它仍然支持-c选项(我自己安装 xattr v0.6.4 无法解决这个问题)。

于 2017-11-07T23:08:42.257 回答
2

➜ /usr/bin/xattr
python 2.7.14版无法运行/usr/bin/xattr。尝试替代方案:

/usr/bin/xattr-2.6(使用 python 2.6)
/usr/bin/xattr-2.7(使用 python 2.7)

运行“man python”以获取有关 Mac OS X 中多版本支持的更多信息
。➜ cd /usr/bin
➜ sudo rm xattr
➜ sudo ln -s xattr-2.7 xattr
➜ /usr/bin/xattr

于 2017-11-03T03:50:35.003 回答
0

我刚刚遇到了同样的问题并通过以下方式解决了它:

/usr/bin/python -m pip install xattr==0.6.4

于 2020-10-07T09:00:17.387 回答
0

@Ren 给出了一个很好的提示,按照他的想法,在Ned Deli's Answer的帮助下,解决了这里的问题。

我的情况:python 2.7 作为默认系统版本(正常使用 pyenv)。/usr/bin/xattr 总是试图调用 /usr/bin/xattr-2.7,这不会成功。调用xattr-2.6工作正常,强制 /usr/bin/xattr call xattr-2.6 在 XCode 尝试调用时导致“选项 -c 无法识别”xattr -crs ....

解决方案:使用命令后:$defaults write com.apple.versioner.python Version 2.6Xcode 终于可以分发我的应用了。

您可以随时将系统默认 python 设置回 2.7: $unset VERSIONER_PYTHON_VERSION

于 2017-11-09T00:09:12.080 回答
0

如果您的 mac 向您抛出类似“选项 -c 无法识别”的错误,您仍然可以尝试使用如下命令启动原始源代码“xattr python 工具”:

sudo python /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/xattr/tool.pyc -cr /Applications/[Application].app

这个对我有用 ;)

于 2019-11-25T17:07:56.113 回答
-1

重新安装 xcode-select,打开终端并输入

xcode-select --install

于 2018-01-18T06:47:51.517 回答