You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by sh...@apache.org on 2016/10/04 22:54:23 UTC

[1/4] ios commit: CB-11860 - Add post-archive step to unpack the .ipa

Repository: cordova-ios
Updated Branches:
  refs/heads/master c6587cffe -> c609c35c0


CB-11860 - Add post-archive step to unpack the .ipa


Project: http://git-wip-us.apache.org/repos/asf/cordova-ios/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-ios/commit/70612218
Tree: http://git-wip-us.apache.org/repos/asf/cordova-ios/tree/70612218
Diff: http://git-wip-us.apache.org/repos/asf/cordova-ios/diff/70612218

Branch: refs/heads/master
Commit: 7061221863d409110190f38353457c4314df7e9b
Parents: 861cac8
Author: Shazron Abdullah <sh...@apache.org>
Authored: Fri Sep 30 13:02:37 2016 -0700
Committer: Darryl Pogue <da...@ayogo.com>
Committed: Fri Sep 30 17:33:16 2016 -0700

----------------------------------------------------------------------
 bin/templates/scripts/cordova/lib/build.js | 28 ++++++++++++++++++++++++-
 1 file changed, 27 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/70612218/bin/templates/scripts/cordova/lib/build.js
----------------------------------------------------------------------
diff --git a/bin/templates/scripts/cordova/lib/build.js b/bin/templates/scripts/cordova/lib/build.js
index ee03891..e173235 100644
--- a/bin/templates/scripts/cordova/lib/build.js
+++ b/bin/templates/scripts/cordova/lib/build.js
@@ -116,8 +116,34 @@ module.exports.run = function (buildOpts) {
           return spawn('xcodebuild', xcodearchiveArgs, projectPath);
         }
 
+        function unpackIPA() {
+            var ipafile = path.join(buildOutputDir, projectName + '.ipa');
+
+            // unpack the existing platform/ios/build/device/appname.ipa (zipfile), will create a Payload folder 
+            return spawn('unzip', [ '-o', '-qq', ipafile ], buildOutputDir);
+        }
+
+        function moveApp() {
+            var appFileInflated = path.join(buildOutputDir, 'Payload', projectName + '.app');
+            var appFile = path.join(buildOutputDir, projectName + '.app');
+            var payloadFolder = path.join(buildOutputDir, 'Payload');
+
+            // delete the existing platform/ios/build/device/appname.app 
+            return spawn('rm', [ '-rf', appFile ], buildOutputDir)
+                .then(function() {
+                    // move the platform/ios/build/device/Payload/appname.app to parent 
+                    return spawn('mv', [ '-f', appFileInflated, buildOutputDir ], buildOutputDir);
+                })
+                .then(function() {
+                    // delete the platform/ios/build/device/Payload folder
+                    return spawn('rm', [ '-rf', payloadFolder ], buildOutputDir);
+                });
+        }
+
         return Q.nfcall(fs.writeFile, exportOptionsPath, exportOptionsPlist, 'utf-8')
-                .then(packageArchive);
+                .then(packageArchive)
+                .then(unpackIPA)
+                .then(moveApp);
     });
 };
 


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org


[2/4] ios commit: CB-11860 - Fix ios-sim tests on Xcode 8

Posted by sh...@apache.org.
CB-11860 - Fix ios-sim tests on Xcode 8


Project: http://git-wip-us.apache.org/repos/asf/cordova-ios/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-ios/commit/861cac84
Tree: http://git-wip-us.apache.org/repos/asf/cordova-ios/tree/861cac84
Diff: http://git-wip-us.apache.org/repos/asf/cordova-ios/diff/861cac84

Branch: refs/heads/master
Commit: 861cac84f5d1e3d04d7dd587610a8d5a7e0d4e76
Parents: 249db30
Author: Darryl Pogue <da...@ayogo.com>
Authored: Fri Sep 16 16:15:13 2016 -0700
Committer: Darryl Pogue <da...@ayogo.com>
Committed: Fri Sep 30 17:33:16 2016 -0700

----------------------------------------------------------------------
 .../CordovaLibTests.xcodeproj/project.pbxproj         | 14 --------------
 1 file changed, 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/861cac84/tests/CordovaLibTests/CordovaLibTests.xcodeproj/project.pbxproj
----------------------------------------------------------------------
diff --git a/tests/CordovaLibTests/CordovaLibTests.xcodeproj/project.pbxproj b/tests/CordovaLibTests/CordovaLibTests.xcodeproj/project.pbxproj
index dcc6d7f..319b682 100644
--- a/tests/CordovaLibTests/CordovaLibTests.xcodeproj/project.pbxproj
+++ b/tests/CordovaLibTests/CordovaLibTests.xcodeproj/project.pbxproj
@@ -208,7 +208,6 @@
 				686357A4141002F100DF4CF2 /* Sources */,
 				686357A5141002F100DF4CF2 /* Frameworks */,
 				686357A6141002F100DF4CF2 /* Resources */,
-				686357A7141002F100DF4CF2 /* ShellScript */,
 			);
 			buildRules = (
 			);
@@ -290,19 +289,6 @@
 			shellScript = "cp ../../CordovaLib/cordova.js \"$BUILT_PRODUCTS_DIR/$FULL_PRODUCT_NAME/www/cordova.js\"";
 			showEnvVarsInLog = 0;
 		};
-		686357A7141002F100DF4CF2 /* ShellScript */ = {
-			isa = PBXShellScriptBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			inputPaths = (
-			);
-			outputPaths = (
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-			shellPath = /bin/sh;
-			shellScript = "# Run the unit tests in this test bundle.\n\"${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests\"\n";
-		};
 /* End PBXShellScriptBuildPhase section */
 
 /* Begin PBXSourcesBuildPhase section */


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org


[4/4] ios commit: CB-11860 - Remove build/device folder before building

Posted by sh...@apache.org.
CB-11860 - Remove build/device folder before building


Project: http://git-wip-us.apache.org/repos/asf/cordova-ios/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-ios/commit/c609c35c
Tree: http://git-wip-us.apache.org/repos/asf/cordova-ios/tree/c609c35c
Diff: http://git-wip-us.apache.org/repos/asf/cordova-ios/diff/c609c35c

Branch: refs/heads/master
Commit: c609c35c03629dc38cde960b1ae957553008f712
Parents: 7061221
Author: Shazron Abdullah <sh...@apache.org>
Authored: Mon Oct 3 19:07:12 2016 -0700
Committer: Darryl Pogue <da...@ayogo.com>
Committed: Tue Oct 4 10:19:36 2016 -0700

----------------------------------------------------------------------
 bin/templates/scripts/cordova/lib/build.js | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/c609c35c/bin/templates/scripts/cordova/lib/build.js
----------------------------------------------------------------------
diff --git a/bin/templates/scripts/cordova/lib/build.js b/bin/templates/scripts/cordova/lib/build.js
index e173235..cfe017e 100644
--- a/bin/templates/scripts/cordova/lib/build.js
+++ b/bin/templates/scripts/cordova/lib/build.js
@@ -89,8 +89,15 @@ module.exports.run = function (buildOpts) {
         events.emit('log','\tConfiguration: ' + configuration);
         events.emit('log','\tPlatform: ' + (buildOpts.device ? 'device' : 'emulator'));
 
-        var xcodebuildArgs = getXcodeBuildArgs(projectName, projectPath, configuration, buildOpts.device);
-        return spawn('xcodebuild', xcodebuildArgs, projectPath);
+        var buildOutputDir = path.join(projectPath, 'build', 'device');
+
+        // remove the build/device folder before building
+        return spawn('rm', [ '-rf', buildOutputDir ], projectPath)
+        .then(function() {
+            var xcodebuildArgs = getXcodeBuildArgs(projectName, projectPath, configuration, buildOpts.device);
+            return spawn('xcodebuild', xcodebuildArgs, projectPath);
+        });
+
     }).then(function () {
         if (!buildOpts.device || buildOpts.noSign) {
             return;


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org


[3/4] ios commit: CB-11860 - Update packaging strategy for Xcode 8

Posted by sh...@apache.org.
CB-11860 - Update packaging strategy for Xcode 8


Project: http://git-wip-us.apache.org/repos/asf/cordova-ios/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-ios/commit/249db303
Tree: http://git-wip-us.apache.org/repos/asf/cordova-ios/tree/249db303
Diff: http://git-wip-us.apache.org/repos/asf/cordova-ios/diff/249db303

Branch: refs/heads/master
Commit: 249db303e258237479cd16b94c1349f2be65978b
Parents: c6587cf
Author: Darryl Pogue <da...@ayogo.com>
Authored: Thu Sep 15 16:58:21 2016 -0700
Committer: Darryl Pogue <da...@ayogo.com>
Committed: Fri Sep 30 17:33:16 2016 -0700

----------------------------------------------------------------------
 bin/templates/scripts/cordova/build        |  1 +
 bin/templates/scripts/cordova/lib/build.js | 63 ++++++++++++++++++-------
 2 files changed, 48 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/249db303/bin/templates/scripts/cordova/build
----------------------------------------------------------------------
diff --git a/bin/templates/scripts/cordova/build b/bin/templates/scripts/cordova/build
index f5b7935..133fd94 100755
--- a/bin/templates/scripts/cordova/build
+++ b/bin/templates/scripts/cordova/build
@@ -43,6 +43,7 @@ var buildOpts = nopt({
     'codeSignResourceRules': String,
     'provisioningProfile': String,
     'developmentTeam': String,
+    'packageType': String,
     'buildConfig' : String,
     'noSign' : Boolean
 }, { '-r': '--release', 'd' : '--verbose' }, args);

http://git-wip-us.apache.org/repos/asf/cordova-ios/blob/249db303/bin/templates/scripts/cordova/lib/build.js
----------------------------------------------------------------------
diff --git a/bin/templates/scripts/cordova/lib/build.js b/bin/templates/scripts/cordova/lib/build.js
index a0d7668..ee03891 100644
--- a/bin/templates/scripts/cordova/lib/build.js
+++ b/bin/templates/scripts/cordova/lib/build.js
@@ -24,7 +24,8 @@ var Q     = require('q'),
     shell = require('shelljs'),
     spawn = require('./spawn'),
     check_reqs = require('./check_reqs'),
-    fs = require('fs');
+    fs = require('fs'),
+    plist = require('plist');
 
 var events = require('cordova-common').events;
 
@@ -54,7 +55,7 @@ module.exports.run = function (buildOpts) {
             var buildType = buildOpts.release ? 'release' : 'debug';
             var config = buildConfig.ios[buildType];
             if(config) {
-                ['codeSignIdentity', 'codeSignResourceRules', 'provisioningProfile', 'developmentTeam'].forEach(
+                ['codeSignIdentity', 'codeSignResourceRules', 'provisioningProfile', 'developmentTeam', 'packageType'].forEach(
                     function(key) {
                         buildOpts[key] = buildOpts[key] || config[key];
                     });
@@ -88,25 +89,35 @@ module.exports.run = function (buildOpts) {
         events.emit('log','\tConfiguration: ' + configuration);
         events.emit('log','\tPlatform: ' + (buildOpts.device ? 'device' : 'emulator'));
 
-        var xcodebuildArgs = getXcodeArgs(projectName, projectPath, configuration, buildOpts.device);
+        var xcodebuildArgs = getXcodeBuildArgs(projectName, projectPath, configuration, buildOpts.device);
         return spawn('xcodebuild', xcodebuildArgs, projectPath);
     }).then(function () {
         if (!buildOpts.device || buildOpts.noSign) {
             return;
         }
-        var buildOutputDir = path.join(projectPath, 'build', 'device');
-        var pathToApp = path.join(buildOutputDir, projectName + '.app');
-        var pathToIpa = path.join(buildOutputDir, projectName + '.ipa');
-        var xcRunArgs = ['-sdk', 'iphoneos', 'PackageApplication',
-            pathToApp,
-            '-o', pathToIpa];
-        if (buildOpts.codeSignIdentity) {
-            xcRunArgs.concat('--sign', buildOpts.codeSignIdentity);
+
+        var exportOptions = {'compileBitcode': false, 'method': 'development'};
+
+        if (buildOpts.packageType) {
+            exportOptions.method = buildOpts.packageType;
         }
-        if (buildOpts.provisioningProfile) {
-            xcRunArgs.concat('--embed', buildOpts.provisioningProfile);
+
+        if (buildOpts.developmentTeam) {
+            exportOptions.teamID = buildOpts.developmentTeam;
         }
-        return spawn('xcrun', xcRunArgs, projectPath);
+
+        var exportOptionsPlist = plist.build(exportOptions);
+        var exportOptionsPath = path.join(projectPath, 'exportOptions.plist');
+
+        var buildOutputDir = path.join(projectPath, 'build', 'device');
+
+        function packageArchive() {
+          var xcodearchiveArgs = getXcodeArchiveArgs(projectName, projectPath, buildOutputDir, exportOptionsPath);
+          return spawn('xcodebuild', xcodearchiveArgs, projectPath);
+        }
+
+        return Q.nfcall(fs.writeFile, exportOptionsPath, exportOptionsPlist, 'utf-8')
+                .then(packageArchive);
     });
 };
 
@@ -143,7 +154,7 @@ module.exports.findXCodeProjectIn = findXCodeProjectIn;
  * @param  {Boolean} isDevice      Flag that specify target for package (device/emulator)
  * @return {Array}                 Array of arguments that could be passed directly to spawn method
  */
-function getXcodeArgs(projectName, projectPath, configuration, isDevice) {
+function getXcodeBuildArgs(projectName, projectPath, configuration, isDevice) {
     var xcodebuildArgs;
     if (isDevice) {
         xcodebuildArgs = [
@@ -152,7 +163,8 @@ function getXcodeArgs(projectName, projectPath, configuration, isDevice) {
             '-scheme', projectName,
             '-configuration', configuration,
             '-destination', 'generic/platform=iOS',
-            'build',
+            '-archivePath', projectName + '.xcarchive',
+            'archive',
             'CONFIGURATION_BUILD_DIR=' + path.join(projectPath, 'build', 'device'),
             'SHARED_PRECOMPS_DIR=' + path.join(projectPath, 'build', 'sharedpch')
         ];
@@ -172,6 +184,25 @@ function getXcodeArgs(projectName, projectPath, configuration, isDevice) {
     return xcodebuildArgs;
 }
 
+
+/**
+ * Returns array of arguments for xcodebuild
+ * @param  {String}  projectName        Name of xcode project
+ * @param  {String}  projectPath        Path to project file. Will be used to set CWD for xcodebuild
+ * @param  {String}  outputPath         Output directory to contain the IPA
+ * @param  {String}  exportOptionsPath  Path to the exportOptions.plist file
+ * @return {Array}                      Array of arguments that could be passed directly to spawn method
+ */
+function getXcodeArchiveArgs(projectName, projectPath, outputPath, exportOptionsPath) {
+  return [
+    '-exportArchive',
+    '-archivePath', projectName + '.xcarchive',
+    '-exportOptionsPlist', exportOptionsPath,
+    '-exportPath', outputPath
+  ];
+}
+
+
 // help/usage function
 module.exports.help = function help() {
     console.log('');


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org