我刚刚升级到XCode 6,并尝试构建我的开发者ID签名的Mac应用程序。 但是,我现在得到以下代码签名错误:
unsealed contents present in the root directory of an embedded framework
这适用于我使用的Dropbox.framework
。显然无法签署。错误是什么意思?怎么了?
答案 0 :(得分:10)
问题是位于version.txt
的{{1}}文件。虽然这对于了解框架的版本是有用的,但似乎不再适用于协同设计。
当我删除文件时,一切正常。
答案 1 :(得分:9)
从OS X版本10.9.5开始,OS X识别签名应用程序的方式将有所变化
Structure your bundle根据OS X 10.9或更高版本的预期:
答案 2 :(得分:7)
今天有几个小时出现同样的问题,因为我试图让Yosemite .framework捆绑到优胜美地。最后,问题是我制作的符号链接,而不是目录中的严格文件。
最初,该程序包的根目录中有一个符号链接已损坏。我修好了。
我添加的符号链接:
Headers -> Versions/Current/Headers/
需要做什么:
Headers -> Versions/Current/Headers
额外的斜线是杀手。
请注意,这在两个不同的位置上给我两次:我也有
Current -> 1.8.0/
我需要的地方
Current -> 1.8.0
我不是一个* nixer,所以也许这是常识,但希望它能帮助像我这样的其他Windows开发者。
答案 3 :(得分:2)
我今天遇到了类似的问题...我的错误是"捆绑根目录中存在未密封的内容"。我的修复是删除我的应用程序上的自定义图标。 AppName.app/Icon?以某种方式腐败......
答案 4 :(得分:1)
我今天研究了一段时间并没有找到任何建议,我的sdl_mixer.framework有五个嵌入式框架,我无法通过iTunesConnect。我的解决方案是删除其中三个我实际上并不需要的东西,另外两个作为独立框架添加到我的项目中,而不是嵌入在sdl_mixer中。希望这对某人有所帮助,我花了好几个小时。
答案 5 :(得分:0)
我现在已经打了两次,所以我添加了原因,因为codesign非常不透明,并且通常拒绝告诉你有问题的资源是什么。
有一次,我有一个无符号的二进制可执行文件。每个可执行文件和框架都需要单独签名才能作为一个整体唱歌。
然后我打了另一个案子。我将代码签署为发布过程的一部分,重新签署每个可执行文件和框架。但是Xcode也签署了捆绑包,结果证明这是在_CodeSignature文件夹中留下的。所以现在,在签署每个可执行文件和框架然后签署捆绑包之前,我预先删除了Xcode生成的_CodeSignature文件夹,其中包括:
find MyApp.app -name _CodeSignature -type d -exec rm -rf {} +
希望这些来之不易的信息能在某一天节省一些时间。
答案 6 :(得分:0)
我有同样的问题,有用的是删除DerivedData文件夹的内容。 Xcode没有说哪个资源导致了这个问题,所以我从头开始重建所有东西。干净也不起作用。
答案 7 :(得分:0)
在我的情况下,我试图用一些旧框架签署一个应用程序。这些建议都没有帮助。原来我必须从框架内删除PkgInfo文件才能让这条消息消失。
答案 8 :(得分:0)
当我尝试签署另一个框架时,我遇到了问题,这里的答案非常鼓舞人心,这里一定是框架结构的一些问题,但我确实找到了它们。结构似乎是正确的,符号链接没有收费" /",没有额外的文件(用ls
检查)...
经过大量的尝试,我终于意识到框架中有一个额外的.DS_Store
,这真的很烦人:(
因此,如果您仍然遇到错误,请尝试检查是否有任何隐藏文件。
答案 9 :(得分:0)
此问题的另一个可能原因:如果您正在构建具有相同名称和相同安装位置的iOS和macOS应用程序,您可能会发现它们都写入同一个应用程序包中。首先,iOS应用程序构建将其内容直接放在应用程序包根目录中,然后macOS应用程序构建将其内容放入应用程序包中的“Contents”文件夹中,然后编码对iOS资源的抱怨。
答案 10 :(得分:0)
我有这样的错误:
<some_path>: unsealed contents present in the bundle root
Command CodeSign failed with a nonzero exit code
问题是我使用了自定义 CONFIGURATION_BUILD_DIR
[About]。经过一些更改(更改 macOS 和 iOS 平台)后,它发生了
当您清理项目时,不会清理此自定义位置构建(如派生数据)。要解决此问题手动删除此文件夹的内容