Visual Studio 2017下Cordova iOS远程构建失败求助:缺失appAsTgz.tgz文件
Cordova iOS远程构建报错:找不到临时文件appAsTgz.tgz
问题描述
已耗时一周完成基于SDK 32的Android版本构建,但iOS远程构建持续报错,卡在找不到临时文件C:\Users\myuser\AppData\Local\Temp\appAsTgz.tgz的问题,无法继续推进。
环境配置
- Windows 10 - Visual Studio 2017 Professional v15.9.51
- SDK Build Tool:32.0.0
- Cordova 11.1.0,android 10.1.2,ios 6.2.0
- Node.js:14.17.3(曾尝试13.14.0、18.13.0 LTS)
- npm:9.1.2(曾尝试6.14.13、7.7.6、8.1.0)
- Java:11.0.17
- 远程构建Mac:Ventura 13系统、Xcode 14.2,网络可访问,此前长期正常运行
报错日志
D:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Microsoft\VisualStudio\v15.0\ApacheCordovaTools\vs-mda-targets\Microsoft.MDA.FileMirroring.targets(256,5): error MSB4018: The "VsTac" task failed unexpectedly. D:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Microsoft\VisualStudio\v15.0\ApacheCordovaTools\vs-mda-targets\Microsoft.MDA.FileMirroring.targets(256,5): error MSB4018: System.IO.FileNotFoundException: Could not find file 'C:\Users\myuser\AppData\Local\Temp\appAsTgz.tgz'. D:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Microsoft\VisualStudio\v15.0\ApacheCordovaTools\vs-mda-targets\Microsoft.MDA.FileMirroring.targets(256,5): error MSB4018: File name: 'C:\Users\myuser\AppData\Local\Temp\appAsTgz.tgz' D:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Microsoft\VisualStudio\v15.0\ApacheCordovaTools\vs-mda-targets\Microsoft.MDA.FileMirroring.targets(256,5): error MSB4018: at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) D:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Microsoft\VisualStudio\v15.0\ApacheCordovaTools\vs-mda-targets\Microsoft.MDA.FileMirroring.targets(256,5): error MSB4018: at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost) D:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Microsoft\VisualStudio\v15.0\ApacheCordovaTools\vs-mda-targets\Microsoft.MDA.FileMirroring.targets(256,5): error MSB4018: at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy) D:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Microsoft\VisualStudio\v15.0\ApacheCordovaTools\vs-mda-targets\Microsoft.MDA.FileMirroring.targets(256,5): error MSB4018: at System.IO.FileStream..ctor(String path, FileMode mode) D:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Microsoft\VisualStudio\v15.0\ApacheCordovaTools\vs-mda-targets\Microsoft.MDA.FileMirroring.targets(256,5): error MSB4018: at Microsoft.VisualStudio.MultiDeviceHybridApps.MdaBuildTasks.RemoteBuild.AppAsTgzStream(String changeTimeFile, JObject lastChangeTimesMap) D:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Microsoft\VisualStudio\v15.0\ApacheCordovaTools\vs-mda-targets\Microsoft.MDA.FileMirroring.targets(256,5): error MSB4018: at Microsoft.VisualStudio.MultiDeviceHybridApps.MdaBuildTasks.RemoteBuild.Build() D:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Microsoft\VisualStudio\v15.0\ApacheCordovaTools\vs-mda-targets\Microsoft.MDA.FileMirroring.targets(256,5): error MSB4018: at Microsoft.VisualStudio.MultiDeviceHybridApps.MdaBuildTasks.VsTac.BuildPlatform() D:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Microsoft\VisualStudio\v15.0\ApacheCordovaTools\vs-mda-targets\Microsoft.MDA.FileMirroring.targets(256,5): error MSB4018: at Microsoft.VisualStudio.MultiDeviceHybridApps.MdaBuildTasks.VsTac.Execute() D:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Microsoft\VisualStudio\v15.0\ApacheCordovaTools\vs-mda-targets\Microsoft.MDA.FileMirroring.targets(256,5): error MSB4018: at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute() D:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Microsoft\VisualStudio\v15.0\ApacheCordovaTools\vs-mda-targets\Microsoft.MDA.FileMirroring.targets(256,5): error MSB4018: at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext() 0 Warning(s) 1 Error(s) Time Elapsed 00:00:02.41 ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== ========== Deploy: 0 succeeded, 0 failed, 0 skipped ==========
解决方案与配置建议
1. 清理临时文件与重建项目缓存
- 手动删除
C:\Users\myuser\AppData\Local\Temp下所有Cordova/Visual Studio相关临时文件,避免残留缓存干扰 - 在项目根目录执行命令重建iOS平台:
cordova clean ios cordova platform remove ios cordova platform add ios@6.2.0 - 重启Visual Studio后重新发起构建
2. 检查临时目录权限与安全软件拦截
- 确认当前Windows用户对
C:\Users\myuser\AppData\Local\Temp目录拥有完全控制权限:右键目录→属性→安全→编辑,添加用户并勾选所有权限 - 临时关闭杀毒软件、防火墙的实时监控功能,防止其拦截VS生成临时tgz文件的操作
3. 调整VS远程构建设置
- 打开Visual Studio,依次进入
工具 > 选项 > Apache Cordova工具 > 远程代理,勾选「禁用增量构建」,强制重新打包整个项目 - 登录远程Mac,清理Cordova缓存目录
~/Library/Caches/com.microsoft.visualstudio.macroservice,然后重启远程构建服务
4. 锁定兼容的Node/npm版本
- 尽管已尝试多个版本,建议锁定Node.js 14.x LTS + npm 6.x的组合,Cordova 11.x与该版本兼容性更稳定
- 重新安装Cordova iOS平台确保版本匹配:
npm uninstall -g cordova-ios npm install -g cordova-ios@6.2.0
5. 绕过VS工具,直接用Cordova命令行构建
- 在Windows项目目录下,直接通过Cordova命令连接远程Mac执行构建,避免VS的VsTac工具出现问题:
(需提前在cordova build ios --device --buildConfig=build.jsonbuild.json中配置远程Mac的IP、用户名、密码等信息)
内容的提问来源于stack exchange,提问作者PaulTaggert
相关产品推荐
相关产品推荐

