Xamarin IOS 构建错误“提取 Zip 条目将导致在指定目标目录之外生成文件。”

问题描述 投票:0回答:3

我正在尝试构建新的 IOS 版本并收到以下错误:

“C:\Program Files\Microsoft Visual Studio�2\Professional\MSBuild\Xamarin\iOS\Xamarin.iOS.Common.After.targets(80,3):错误:解压缩文件 bin\iPhone\ 时出错AppStore\AppBundle\MyApp.zip:提取 Zip 条目将导致在指定目标目录之外生成文件。”

产生此错误的输出行是:-

"/usr/bin/zip -r /Users/fred/Library/Caches/Xamarin/mtbs/builds/MyApp/ca830d1e9af62a1e18d114cf402fd82be9cb814135209657390ffb486f0d0ee4/bin/iPhone/AppStore/AppBundle/MyApp.zip ../MyApp.app" 

看起来,该过程不是返回到父目录然后压缩“MyApp.app”目录,而是创建一个以“..”为根目录、以“MyApp.app”为子目录的zip文件,这解释了上述错误。

我可以将调试版本部署到设备,但无法构建 AppStore 版本或执行存档过程。 我的项目之前使用 Visual Studio 2019 构建得很好,但我必须升级才能获得仅在 Visual Studio 2022 中更正的证书修复。

此问题有任何已知的修复方法吗?

我正在使用:

  • Visual Studio v17.3.1
  • Xamarin v5.0.0.2515
  • Windows 11 机器

编译;

  • macOS 蒙特利 v12.5.1
  • Xcode v13.4.1
c# ios xamarin visual-studio-2022
3个回答
1
投票

注释或删除此“解压”任务

<!--Unzip App Bundle on Windows-->
<Unzip Condition="Exists('$(DeviceSpecificOutputPath)AppBundle\$(_AppBundleName).zip')" ZipFilePath="$(DeviceSpecificOutputPath)AppBundle\$(_AppBundleName).zip" ExtractionPath="$(DeviceSpecificOutputPath)AppBundle\$(_AppBundleName)$(AppBundleExtension)" /> 

在文件中

..\Community\Msbuild\Xamarin\iOS\Xamarin.iOS.Common.After.targets


0
投票

这里同样的问题。打开 MS dev com“Xamarin iOS 部署不再有效”。

我确实找到了适合我的东西。选择存档 iOS 构建并等待错误。选择“查看存档 + 失败的 iOS 构建”,点击“分发”,取消信用质询,点击“打开文件夹”,然后将 ipa 提交给 Apple。


0
投票

谢谢你,fractal4,你的建议帮助我成功构建,但在尝试为应用程序商店存档时,同样的问题又出现了。 Xamarin 现在不再支持,但当我在 MAUI 平台上工作时遇到这个非常烦人的问题时,我需要推出一个小修复程序。 在我拔出头发并尝试了我能想到的一切之后,我终于删除了iOS项目,重命名了文件夹,创建了一个新的空白iOS项目,然后将所有文件复制回来,并将它们重新添加到项目中。 现在它已成功构建并存档。 我希望比较这些项目并指出实际问题是什么,但我发现新旧 .csproj 文件中的任何路径没有重大差异。 也许这是上演的事情? 无论如何,虽然我无法提供具体细节,但不幸的是,如果有人严重陷入这个问题,那么我很幸运走上了这条路。 创建一个空白的 iOS 项目,确保它可以构建——然后重新添加您的内容。 希望您能得到相同的结果。

© www.soinside.com 2019 - 2024. All rights reserved.