BuildIOS.js 2.1 KB

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