[ 
https://issues.apache.org/jira/browse/CB-9359?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14635508#comment-14635508
 ] 

ASF GitHub Bot commented on CB-9359:
------------------------------------

Github user muratsu commented on a diff in the pull request:

    https://github.com/apache/cordova-windows/pull/102#discussion_r35133583
  
    --- Diff: template/cordova/lib/build.js ---
    @@ -229,11 +268,66 @@ function buildTargets(msbuild, config) {
                 if (msbuild.version == '4.0' && build.target == 
projFiles.win80) {
                     build.target = 'CordovaApp.vs2012.sln';
                 }
    -            return msbuild.buildProject(path.join(ROOT, build.target), 
config.buildType,  build.arch);
    +
    +            var otherProperties = { };
    +            // Only add the CordovaBundlePlatforms argument when on the 
last build step
    +            if (shouldBundle && index === configsArray.length - 1) {
    +                otherProperties.CordovaBundlePlatforms = bundleTerms;
    +            } else if (shouldBundle) {
    +                otherProperties.CordovaBundlePlatforms = build.arch;
    +            }
    +            return msbuild.buildProject(path.join(ROOT, build.target), 
config.buildType,  build.arch, otherProperties);
              });
         }, Q());
    +
    +    if (shouldBundle) {
    +        return buildsCompleted.then(function() {
    +            // msbuild isn't capable of generating bundles unless you 
enable bundling for each individual arch
    +            // However, that generates intermediate bundles, like 
"CordovaApp.Windows10_0.0.1.0_x64.appxbundle"
    +            // We need to clear the intermediate bundles, or else "cordova 
run" will fail because of too
    +            // many .appxbundle files.
    +
    +            console.log('Clearing intermediates...');
    +            var appPackagesPath = path.join(ROOT, 'AppPackages');
    +            var childDirectories = shell.ls(path.join(appPackagesPath, 
'*')).map(function(pathName) {
    +                return { path: pathName, stats: fs.statSync(pathName) };
    +            }).filter(function(fileInfo) {
    +                return fileInfo.stats.isDirectory();
    +            });
    +
    +            if (childDirectories.length === 0) {
    +                throw new Error('Could not find a completed app package 
directory.');
    +            }
    +
    +            // find the most-recently-modified directory
    +            childDirectories.sort(function(a, b) { return b.stats.mtime - 
a.stats.mtime; });
    +            var outputDirectory = childDirectories[0];
    +
    +            var finalFile = '';
    +
    +            var archSearchString = bundleTerms.replace(/\|/g, '_') + 
(config.buildType === 'debug' ? '_debug' : '') + '.appxbundle';
    +            var filesToDelete = shell.ls(path.join(outputDirectory.path, 
'*.appx*')).filter(function(appxbundle) {
    +                var isMatch = appxbundle.indexOf(archSearchString) === -1;
    +                if (!isMatch) {
    +                    finalFile = appxbundle;
    +                }
    +                return isMatch;
    +            });
    +            filesToDelete.forEach(function(file) {
    +                shell.rm(file);
    --- End diff --
    
    should we fail fast if we have trouble deleting a file?


> Add support for app package bundling to Windows 8.1 / Windows 10
> ----------------------------------------------------------------
>
>                 Key: CB-9359
>                 URL: https://issues.apache.org/jira/browse/CB-9359
>             Project: Apache Cordova
>          Issue Type: Task
>          Components: Windows
>            Reporter: Rob Paveza
>            Assignee: Rob Paveza
>
> When generating a release build, developers are able to submit a single 
> binary (an .appx bundle) to the Windows Store to avoid having to upload 
> multiple app packages (particularly when building an architecture-specific 
> app).  This task should add a --bundle flag to enable automatic creation of 
> an .appxbundle for upload of the app to the Store.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@cordova.apache.org
For additional commands, e-mail: issues-h...@cordova.apache.org

Reply via email to