BuildIOS.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. var os = require('os');
  2. var fs = require('fs-extra');
  3. var path = require("path");
  4. var host = require("./Host");
  5. var config = require("./BuildConfig");
  6. var jenkinsBuild = process.env.ATOMIC_JENKINS_BUILD == 1;
  7. var atomicRoot = config.atomicRoot;
  8. var buildDir = config.artifactsRoot + "Build/IOS/";
  9. namespace('build', function() {
  10. task('ios_native', {
  11. async: true
  12. }, function() {
  13. var NETNativeSrcDir = buildDir + "Source/AtomicNET/NETNative/" + config["config"] + "-iphoneos/";
  14. var NETNativeDestDir = config.artifactsRoot + "AtomicNET/" + config["config"] + "/Native/iOS/";
  15. host.setupDirs(!config["noclean"], [buildDir, NETNativeDestDir]);
  16. process.chdir(buildDir);
  17. var cmds = [];
  18. cmds.push("cmake -DIOS=1 -DATOMIC_DEV_BUILD=0 -G Xcode ../../../");
  19. if (jenkinsBuild) {
  20. cmds.push("security -v list-keychains -d system -s /Users/jenkins/Library/Keychains/codesign.keychain");
  21. cmds.push("security -v unlock-keychain /Users/jenkins/Library/Keychains/codesign.keychain");
  22. }
  23. cmds.push("xcodebuild -configuration " + config["config"] + " -parallelizeTargets -jobs 4");
  24. // Note that this install_name_tool invocation invalidates the code signing, Xamarin/Visual Studio should resign the binary on deploy to device
  25. cmds.push("cd \"" + NETNativeSrcDir + "\" && install_name_tool -id @rpath/AtomicNETNative.framework/AtomicNETNative AtomicNETNative.framework/AtomicNETNative");
  26. //cmds.push("cd \"" + NETNativeSrcDir + "\" && codesign --deep --force --verify --sign \"iPhone Developer\" ./AtomicNETNative.framework/");
  27. cmds.push("cd \"" + NETNativeSrcDir + "\" && zip -r AtomicNETNative.framework.zip AtomicNETNative.framework");
  28. jake.exec(cmds, function() {
  29. fs.copySync(NETNativeSrcDir + "AtomicNETNative.framework", NETNativeDestDir + "AtomicNETNative.framework");
  30. fs.copySync(NETNativeSrcDir + "AtomicNETNative.framework.zip", NETNativeDestDir + "AtomicNETNative.framework.zip");
  31. complete();
  32. }, {
  33. printStdout: true,
  34. printStderr: true
  35. });
  36. });
  37. }); // end of build namespace