XCode 4.3.1打破了通过引用添加目录的应用程序validation。 任何解决方法?

我发现Xcode 4.3.1有一个严重的问题,在应用程序包内的目录树中使用资源validation应用程序。

应用程序可以在Xcode“Build for Archive”过程中通过validation – 只有在通过Organizer运行validation时,validation才会失败,因为这需要保存临时或App Store提交。

花费数小时试图追踪常见的代码签名授权问题后,当导出失败时,我最终注意到系统控制台中的以下行:

3/10/12 2:32:48.450 PM [0x0-0x261261] .com.apple.dt.Xcode:/ Users / chris / Library / Developer / Xcode / Archives / 2012-03-10 / Coverage 3-10-12 2.32 PM.xcarchive / Products / Applications / Coverage.app / Tiles / T-Mobile-roam / 4:是一个目录

“Tiles”目录已经添加到我的项目中,通过“为所有添加的文件夹创build文件夹参考”。

我发现删除Tiles目录允许应用程序构build和validation。 将其添加回来导致此代码签名失败。

看起来,添加一个多级目录树可以完全validationvalidation过程,并且这些错误消息会使开发人员试图追踪代码签名和授权问题,而这些问题确实不是问题。

我从来没有任何问题与Xcode的先前版本 – 这似乎是在Xcode 4.3.1新的严重错误。

是否有任何解决方法可以让我们提交更新到我们的应用程序?

笔记:

这个线程似乎相关: https : //devforums.apple.com/message/630800

这个问题也涉及到类似的问题: Xcode 4.3:Codesign操作失败(检查您select的身份是否有效)

我花了一天的时间来试图隔离这个bug,而且我终于明白了。

XCode 4.3.1中的代码签名者在为App Storevalidation或保存AdHoc分发扼stream圈时,只要包中的子目录与其父目录具有相同的名称即可。

例如:

test/test/file.x -- FAIL test/test2/file.x -- WORKS 

这在Xcode 4.3.1中似乎是新的,希望很快会被修复。

更新:我已经从Apple DTS支持听到确认问题,并指出没有已知的解决方法,而不是重命名捆绑中的目录。

也许我find了一个解决办法:

  1. 公开组织者;
  2. 右键点击要导出的档案,然后select“在Finder中显示”;
  3. 右键单击xcarchive文件并select“显示包内容”;
  4. 去产品/应用程序;
  5. 创build一个文件夹并将其命名为Payload;
  6. 将.app文件拖到文件夹中(不要复制它,因为它会使签名无效);
  7. 压缩文件夹;
  8. 将.zip文件重命名为.ipa

它为我工作。
让我知道,即使对你也没关系。

我有同样的问题。 解决办法是删除以“._”开头的文件。

请注意,即使显示隐藏文件,这些文件也是隐藏的!

就我而言,我认为这些文件是由Photoshop生成的。

我有同样的问题,并解决这个问题:

有一个脚本(build设阶段下),试图“清理”框架,通过删除看似不需要的项目,如标题。

但是,这样做破坏了框架的基本结构,可能导致框架不能正常检测,从而导致签名validation操作失败。

例如,“Headers”文件夹和符号链接不应该被删除,只有Headers文件夹中的* .h文件!

因此,请检查您的.framework文件夹是否包含如下所示的基本结构:

 mylib.framework/ mylib -> symlink to Versions/Current/mylib Headers -> symlink to Versions/Current/Headers Resources -> symlink to Versions/Current/Resources Versions/ A/ Headers/ Resources/ mylib Current -> symlink to A 

我们刚才遇到了这个问题,我们的.app正在将其他的.appembedded到它的包中。 据推测,代码签名在嵌套的应用程序上窒息。