lvjian700
8/1/2014 - 2:41 AM

build and package mobile app

build and package mobile app

#require 'json'
#require 'fileutils'
task :ios_build do
  system("chmod -R +w \"#{Dir.pwd}\"")
  system("chmod -R 777 \"#{Dir.pwd}\"")
  system("rm -rf \"#{Dir.pwd}/platforms\"")
  system("export PATH=$PATH:/usr/local/bin/; cordova platforms rm ios")
  system("export PATH=$PATH:/usr/local/bin/; cordova platforms add ios")
end

task :ios_package => :ios_build do
  ['dev', 'qa', 'uat', 'demo', 'preprod', 'prodtest', 'prod'].each do |env|
    bundle_id = (['prod'].include?env) ? "au.com.pizzamogul" : "au.com.pizzamogul.dev"

    code_sign_identity = (['prod'].include?env) ? "iPhone Distribution: Domino's Pizza Enterprises Limited" : "iPhone Distribution: Domino's Pizza Enterprises Limited  (3E9U6978QT)"
    provision_profile = (['prod'].include?env) ? "EC8DBFBE-5DFE-4058-B8B1-DA38BCB9398B" : "107458C5-9E2E-4D54-B7F9-4C03A16D886E"

    system("export PATH=$PATH:/usr/local/bin/; ENV='#{env}' cordova prepare ios")
    system("/usr/libexec/PlistBuddy -c \"Set :CFBundleIdentifier #{bundle_id}\" \"#{Dir.pwd}/platforms/ios/Pizza Mogul/Pizza Mogul-Info.plist\"")

    system("source \"#{Dir.pwd}/platforms/ios/cordova/check_reqs\"")
    system("xcodebuild clean build CODE_SIGN_IDENTITY=\"#{code_sign_identity}\" PROVISIONING_PROFILE=#{provision_profile} -project \"#{Dir.pwd}/platforms/ios/Pizza Mogul.xcodeproj\" ARCHS=\"armv7 armv7s\" -target \"Pizza Mogul\" -configuration Release -sdk iphoneos build VALID_ARCHS=\"armv7 armv7s\" CONFIGURATION_BUILD_DIR=\"#{Dir.pwd}/release/ios/#{env}\"")
    system("xcrun -sdk iphoneos PackageApplication -v \"#{Dir.pwd}/release/ios/#{env}/Pizza Mogul.app\" -o \"#{Dir.pwd}/release/ios/#{env}/Pizza Mogul.ipa\"")
    system("cp \"#{Dir.pwd}/platforms/ios/Pizza Mogul/Pizza Mogul-Info.plist\" \"#{Dir.pwd}/release/ios/#{env}/Pizza Mogul.plist\"")
    system("cd \"#{Dir.pwd}/release/ios/#{env}\"; zip -r \"Pizza Mogul.app.dSYM.zip\" \"Pizza Mogul.app.dSYM\"")
  end
end

task :ios_publish => :ios_package do
  ['dev', 'qa', 'uat', 'demo', 'preprod', 'prodtest', 'prod'].each do |env|
    system("cp \"#{Dir.pwd}/release/ios/#{env}/Pizza Mogul.ipa\" \"/Volumes/builds/mogulwrapper/latest/ios/PizzaMogul_#{env}.ipa\"")
  end
end

task :android_build do
  system("chmod -R 777 \"#{Dir.pwd}\"")
  system("cordova platforms rm android")
  system("cordova platforms add android")
end

task :android_package => :android_build do
  ['dev', 'qa', 'uat', 'demo', 'preprod', 'prodtest', 'prod'].each do |env|
    system("cp #{Dir.pwd}/build/android/#{env}.ant.properties #{Dir.pwd}/platforms/android/ant.properties")
    system("ENV='#{env}' cordova build android --release")
    system("mv #{Dir.pwd}/platforms/android/ant-build/PizzaMogul-release.apk #{Dir.pwd}/release/android/PizzaMogul-#{env}.apk")
  end
end

task :android_publish => :android_package do
  ['dev', 'qa', 'uat', 'demo', 'preprod', 'prodtest', 'prod'].each do |env|
    system("cp \"#{Dir.pwd}/release/android/PizzaMogul-#{env}.apk\" \"/Volumes/builds/mogulwrapper/latest/android/.\"")
  end
end

#task :wp8_build do
#  FileUtils.chmod_R(0777, "#{Dir.pwd}")
#  system("cordova platforms rm wp8")
#  system("cordova platforms add wp8")
#end

#task :wp8_package => :wp8_build do
#  config = JSON.parse(File.read("#{Dir.pwd}/config/config.json"))
#  ['dev', 'qa', 'uat', 'demo', 'preprod', 'prod'].each do |env|
#    File.new("#{Dir.pwd}/platforms/wp8/www/js/index.js", 'w') << File.read("#{Dir.pwd}/www/js/index.js").gsub('%HOST%', config[env]["host"]).gsub('%TIMEOUT%', config[env]["timeout"].to_s)
#    FileUtils.copy("#{Dir.pwd}/config/wp8/icons/ApplicationIconX62.png", "#{Dir.pwd}/platforms/wp8/ApplicationIcon.png")
#    FileUtils.copy("#{Dir.pwd}/config/wp8/icons/BackgroundX173.png", "#{Dir.pwd}/platforms/wp8/Background.png")
#    FileUtils.copy("#{Dir.pwd}/config/wp8/splash/SplashScreenImage480X800.jpg", "#{Dir.pwd}/platforms/wp8/SplashScreenImage.jpg")
#    system("cordova build wp8 --release")
#    FileUtils.cp_r("#{Dir.pwd}/platforms/wp8/Bin/Release", "#{Dir.pwd}/release/wp8/#{env}")
#  end
#end