无法将应用构建安装到使用 jenkins 创建的 iOS 9。错误说 Symlink 有绝对路径

Unable to install app build to iOS 9 created using jenkins. Error says Symlink has absolute path

我正在创建一个应用程序。我创建了一个临时构建来测试我 iPad 中的应用程序。我在构建中使用了正确的代码签名证书和配置文件。我有 2 个 iPads,1 个 iOS 8.3,另一个 iOS9.5 beta。

当我尝试在两个 iPad 中安装应用程序时,iPad 和 iOS8.3 允许安装该应用程序,但在 iOS 9.5 beta 中它失败了.

我正在使用 Xcode > Window > 设备并选择我的 iPad 并将构建拖放到已安装的应用程序中。它会给出如下错误:"App installation failed - Could not write to the device."

编辑:控制台有以下错误日志:

  1. 无效的符号链接:
  2. 流提取器出错:错误域=SZExtractorErrorDomain 代码=2“无效的符号链接:
  3. __dispatch_source_read_socket_block_invoke_2:188: 无法完成提取:错误域=SZExtractorErrorDomain 代码=3 "This extractor previously encountered an error and can no longer be used." UserInfo={NSLocalizedDescription=此提取器之前遇到错误,无法再使用。}

请帮我解决这个问题。

我们今天遇到了同样的问题,并找到了一个似乎有效的解决方案。

如果您使用 xcodebuild 插件与 jenkins 一起构建,请确保在常规构建设置中取消选择 "Generate Archive" 选项

这为我们解决了 iOS9 上的安装问题

我也看到了这个问题。在安装应用程序时查看控制台日志,我看到类似这样的错误:

[MIFileManager realPathForURL:ifChildOfURL:]: Rejecting /var/mobile/Library/Caches/com.apple.mobile.installd.staging/temp.BGmQCm/extracted/Payload/<app_name>.app/Frameworks/<framework_name>.framework/<framework_name>.framework -> /Users/mobile/Library/Developer/Xcode/DerivedData/<app_name>-bgvxkqkwligkcjcwrtdolronntfp/Build/Intermediates/ArchiveIntermediates/<app_name_dir>/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/<framework_name>.framework, as absolute symlinks are not allowed

当我实际使用 xcodebuild (Xcode 7.1) 归档时会发生这种情况。如果我绕过存档并使用 PackageApplication 工具,安装工作正常,我推测 Jenkin 的插件正在做什么。

我同意 Eric Genet 的回答,问题似乎是 xcodebuild 插件无法再从同一插件生成 ipa 并成功存档。

我在保持存档的同时解决问题的方法是将存档和 ipa 的生成分成 2 个不同的 xcodebuild 步骤。这两个构建步骤具有相同的设置,除了一个检查了 "Generate Archive",另一个检查了 "Pack application and build ipa"。通过将它们分开,可以成功构建 ipa 和存档。