iOS构建失败,无效签名:0x80014同时从服务器解压缩iOS设备构建zip文件(包含.plist和.ipa文件)

Owr*_*wre 4 ios npm visual-studio-cordova

当我尝试使用visual studio中的设备标志构建我的应用程序时,我会收到此消息.我无法解决问题所在.

签名有什么错误的证书吗?或者我回来的zip文件坏了吗?

------ Downloading completed build files from http://*:3000/build/273/download to D:\*\bld\iOS\Debug
1>  ------ Done downloading the build outputs to D:\*\bld\iOS\Debug
1>  ------ Extracting the build outputs to D:\*\bin\iOS\Debug
1>  Archive:  D:\*\bld\iOS\Debug\273.zip
1>    inflating: BlankCordovaApp2.plist
1>  
1>  C:\Users\username\AppData\Roaming\npm\node_modules\vs-mda\node_modules\q\q.js:126
1>                      throw e;
1>                            ^
1>EXEC : error : Error from downloading build outputs to D:\*\bin\iOS\Debug: Error: invalid signature: 0x80014
1>      at Extract.<anonymous> (C:\Users\username\AppData\Roaming\npm\node_modules\vs-mda\lib\remoteBuild.js:228:25)
1>      at Extract.EventEmitter.emit (events.js:117:20)
1>      at Parse.<anonymous> (C:\Users\username\AppData\Roaming\npm\node_modules\vs-mda\node_modules\unzip\lib\extract.js:28:10)
1>      at Parse.EventEmitter.emit (events.js:95:17)
1>      at C:\Users\username\AppData\Roaming\npm\node_modules\vs-mda\node_modules\unzip\lib\parse.js:64:12
1>      at processImmediate [as _immediateCallback] (timers.js:330:15)
1>C:\Users\username\AppData\Roaming\npm\node_modules\vs-mda-targets\Microsoft.MDA.targets(99,5): error MSB3073: The command ""C:\Users\username\AppData\Roaming\npm\node_modules\vs-mda\vs-cli" build --platform "iOS" --configuration "Debug" --projectDir . --projectName "BlankCordovaApp2" --language "en-US" --buildServerUrl "192.168.0.19:3000" --buildTarget "iOSLocalDevice"" exited with code 8.
Run Code Online (Sandbox Code Playgroud)

Owr*_*wre 6

哦,为了解决这个问题我用convertress-zip替换了解压缩的npm包.然后我修改了vs-mda-remote C:\ Users\username\AppData\Roaming \npm \node_modules\vs-mda\lib\remoteBuild.js中的源代码,改为使用decompress-zip.现在一切正常!

可能解压缩并不像解压缩zip那样强大,可以处理zip文件.

感谢@ Abhishek-MSFT指出我正确的方向!

一步一步的解决方案:

  1. 导航到C:\ Users\username\AppData\Roaming \npm \node_modules\vs-mda
  2. 打开package.json并将"decompress-zip":"0.0.8"添加到依赖项中.
  3. 在当前目录中运行npm install
  4. 导航到lib并打开remoteBuild.js
  5. 将"DecompressZip = require('decompress-zip')"添加到顶部的vars链中
  6. 然后在第220行的某处修改函数unzipBuildFiles(zipFile,toDir),如下图所示

    function unzipBuildFiles(zipFile, toDir) {
    
        console.info(res.getString('ExtractingRemoteBuild', toDir));
        util.createDirectoryIfNecessary(toDir);
    
        var deferred = Q.defer();
    
        var unzipper = new DecompressZip(zipFile);
    
        unzipper.on('error', function (err) {
            deferred.reject(new Error(res.getString('ErrorDownloadingRemoteBuild', toDir, err)));
        });
    
        unzipper.on('extract', function (log) {
            console.info(res.getString('DoneExtractingRemoteBuild', toDir));
            fs.unlink(zipFile, function (err) {
                if (err) {
                    console.info(res.getString('FailedToDeleteRemoteZip', zipFile));
                }
                deferred.resolve();
            });
        });
    
        unzipper.extract({
            path: toDir,
            filter: function (file) {
                return file.type !== "SymbolicLink";
            }
        });
    
        return deferred.promise;
    }
    
    Run Code Online (Sandbox Code Playgroud)

    现在尝试构建,这将解决错误签名的问题

  • 有没有办法在不修改源的情况下修复软件? (3认同)