Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/113.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios macOS High Sierra Xcode中的代码符号错误-不允许使用资源分叉、查找器信息或类似碎片_Ios_Xcode_Xcode8_Macos Sierra_File Forks - Fatal编程技术网

Ios macOS High Sierra Xcode中的代码符号错误-不允许使用资源分叉、查找器信息或类似碎片

Ios macOS High Sierra Xcode中的代码符号错误-不允许使用资源分叉、查找器信息或类似碎片,ios,xcode,xcode8,macos-sierra,file-forks,Ios,Xcode,Xcode8,Macos Sierra,File Forks,已尝试: 请参阅显示错误的图像 在代码符号部分,它允许我选择配置文件和证书…但仍然给出错误。 如何解决此问题?解决方案1: 苹果开发者网站回答了上述问题 在终端中执行以下命令:第一个转到项目根文件夹 xattr -cr <path_to_project_dir> 清理Xcode并重新构建。完成了 解决方案3: 您可以通过查找保存查找器信息的文件来解决此问题 在终端中,转到项目根目录并执行 ls -alR@ . > kundapura.txt find . | xar

已尝试:

请参阅显示错误的图像

在代码符号部分,它允许我选择配置文件和证书…但仍然给出错误。


如何解决此问题?

解决方案1:

苹果开发者网站回答了上述问题

在终端中执行以下命令:第一个转到项目根文件夹

 xattr -cr <path_to_project_dir>
清理Xcode并重新构建。完成了

解决方案3:

您可以通过查找保存查找器信息的文件来解决此问题

在终端中,转到项目根目录并执行

ls -alR@ . > kundapura.txt
find . | xargs -0 xattr -c
这将在当前目录中创建kundapura.txt。现在搜索com.apple.FinderInfo并清除所有文件的此属性。你可以这样做

xattr -c <filename>

清理Xcode并重新构建。完成。

如果在对应用程序进行代码签名时出现此错误:

不允许使用资源分叉、查找信息或类似碎片 命令/usr/bin/codesign失败,退出代码为1

转到项目根文件夹并执行

ls -alR@ . > kundapura.txt
find . | xargs -0 xattr -c
这将清除所有文件的属性

在Sierra,关于签名包中可以包含哪些内容的规则已经收紧,不再允许使用资源分叉。AppleScript一直将信息保存在资源分叉中,尽管这些信息已被长期闲置。对于Sierra,保存脚本时,将不再保存此资源分叉信息

这意味着您不能对上次保存在Sierra之前的版本中的脚本进行代码设计;您必须在Sierra保存才能登录Sierra

可能受到影响的人是那些将其他脚本捆绑在脚本中的人(cordova?)。在所有嵌入的脚本重新保存到Sierra下之前,他们将无法对容器脚本进行签名

更新:

似乎这也行得通:

xattr -rc .
如果您有任何权限不足错误,请尝试在sudo之前添加:
sudo xattr-rc.

----以防由于缺乏bash知识或其他原因而无法应用上述解决方案

当我在Sierra上启用iCloud Drive时,我就遇到了这个问题。我的项目在一个与iCloud Drive同步的文件夹中。我想这就是添加这些附加属性的原因

临时解决方案:


禁用项目所在文件夹的iCloud Drive。

错误来自图像文件中的属性。这发生在我们的图形设计师使用属性保存photoshop中的图像时

下面是一个简单的命令,用于查找所有png文件并删除其属性。从终端在项目根目录中运行此命令。清理和重建;问题解决了

find . -type f -name '*.png' -exec xattr -c {} \;
简单解决方案:-

我是怎么做的[为我工作]

步骤1:- 转到此文件夹-从您的查找器中按Options Go->Go to folder

然后像这样键入项目路径 示例:- Library/Developer/Xcode/DerivedData/yourprojectname/Build/Products/Debug iphoneos

现在,您可以看到一个弹出窗口,其中包含可用文件的列表,在那里您可以看到yourApp.app文件[不要做任何事情,只需等待步骤2]

步骤2:- 打开新终端并键入just cd,然后将步骤1 yourApp.app拖动到终端,现在您将获得应用程序的路径,现在按enter按钮

第三步: 现在输入这个命令**

xattr-rc

不要错过“.”(点)按回车键


就这样,转到您的Xcode项目,清理并再次运行

所有关于清除文件的内容都很好,但对于多个项目来说都很乏味

图形应用程序(如旧版本中的photoshop)以旧的方式在外部文件中写入附加信息(我们现在称之为元数据…),或者它们来自较旧的OSX,例如:

例如,解压文件夹时使用“com.apple.ResourceFork”和“com.apple.FinderInfo”

Xcode 8拒绝将其添加到构建中(当您使用“git--add.”将其添加到项目中时,可能……) 您可以递归地在终端中查找并删除它们,但可能会很乏味

我写了一个小的免费实用程序来删除它。。希望能有所帮助


苹果公司对这个问题的官方答案是

这是iOS 10引入的安全强化更改, macOS Sierra、watchOS 3和tvOS 10

代码签名不再允许应用程序包中的任何文件具有 包含资源分支或查找器信息的扩展属性

要查看导致此错误的文件,请在中运行此命令 终端:
xattr-lr

您还可以使用从应用程序包中删除所有扩展属性 xattr命令:
xattr-cr

可以替换为Xcode项目的目录。例如,
~/Development/MyProject

对于那些(像我一样)只想开发一个应用程序,而不必在添加到macOS目标的每个新photoshop创建的PNG上删除扩展属性的人,你可以通过添加用户定义的构建设置临时禁用代码签名:

CODE_SIGNING_ALLOWED = No 
显然,一个发布应用程序的人最终需要解决这个问题,但这使得在像我这样的情况下,在Sierra中省略代码签名并不一定很简单(在过去的OS X/Xcode上,这样做比较容易)

根据RGriffith的评论,这里有一些屏幕截图供那些不确定如何添加自定义构建设置的人使用


我昨天遇到了这个问题

(怎么了)
我通过手动替换finder中的文件更新了图像资源,但由于此编译错误而失败


(正确)
不要以这种方式更新图像。之后,我将图像拖动到Xcode中的“xcassets”。不再出现错误。

我的问题是大约1年前我使用cordova构建了这个应用程序,但它与新版本的xcode不兼容,所以我只使用了
cord
CODE_SIGNING_ALLOWED = No 
$ git stash
$ git stash pop
xattr -rc .
codesign -f -vv --preserve-metadata=entitlements -s {*my Apple distribution cert SHA*} my.app
my.app: resource fork, Finder information, or similar detritus not allowed
my.app: signed app bundle with Mach-O thin (arm64) [*com.something.my*]