-
-
Save chiuan/804346927cc6156168993a750695a4bb to your computer and use it in GitHub Desktop.
Unity3D Ant Build Configuration
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="UTF-8"?> | |
<project name="Honorbound" default="main" basedir="."> | |
<property environment="env"/> | |
<property name="RAW_BUILD_NUMBER" value="${env.BUILD_NUMBER}"/> | |
<script language="javascript"><![CDATA[ | |
var buildNum = parseInt(project.getProperty("RAW_BUILD_NUMBER")) | |
var minorBuildNumber = buildNum % 100; | |
var majorBuildNumber = (Math.floor(buildNum / 100)) % 100; | |
var uberBuildNumber = (Math.floor(buildNum / 10000)) % 100; | |
project.setProperty("minorBuildNumber", minorBuildNumber); | |
project.setProperty("majorBuildNumber", majorBuildNumber); | |
project.setProperty("uberBuildNumber", uberBuildNumber); | |
]]></script> | |
<property name="VERSION_STRING" value="${uberBuildNumber}.${majorBuildNumber}.${minorBuildNumber}"/> | |
<property file="settings.properties"/> | |
<property name="dev.dir.absolute" location="${dev.dir}"/> | |
<tstamp> | |
<format property="TODAY_STAMP" pattern="yyyy_MM_dd" locale="en,US"/> | |
</tstamp> | |
<tstamp> | |
<format property="MONTH_STAMP" pattern="M" locale="en,US"/> | |
</tstamp> | |
<property name="VERSION_NUM" value="${uberBuildNumber}.${majorBuildNumber}.${minorBuildNumber}"/> | |
<property name="VERSION_STRING" value="honorbound_${VERSION_NUM}"/> | |
<target name="main" depends="ios, android, zipDsym" /> | |
<target name="android" depends="compile-android" /> | |
<target name="ios" depends="compile-ios" /> | |
<target name="clean"> | |
<echo message="Cleaning Build Space"/> | |
<delete dir="${build.dir}"/> | |
<mkdir dir="${build.dir}"/> | |
</target> | |
<target name="compile-ios" depends="clean"> | |
<echo message="Compiling unity project for version ${VERSION_STRING}"/> | |
<echo message="${unity.bin} -projectPath ${dev.dir.absolute} -executeMethod PerformBuild.CommandLineBuild -batchmode -quit"/> | |
<exec executable="${unity.bin}" failonerror="true"> | |
<arg line="-projectPath ${dev.dir.absolute}"/> | |
<arg line="-executeMethod PerformBuild.CommandLineBuild"/> | |
<arg line="-batchmode"/> | |
<arg line="-quit"/> | |
</exec> | |
<replace file="${dev.dir.absolute}/Build/iPhone/Info.plist" preservelastmodified="true"> | |
<replacefilter token="999.999.999" value="${VERSION_NUM}" /> | |
</replace> | |
<exec executable="${security.bin}" failonerror="true"> | |
<arg value="unlock-keychain"/> | |
<arg line="-p ${keychain.password}"/> | |
</exec> | |
<echo message="Building ${dev.dir.absolute}/Build/iPhone/Unity-iPhone.xcodeproj/ Sym Root ${dev.dir.absolute}/Build/iPhone/"/> | |
<exec executable="${xcode.bin}" failonerror="true"> | |
<arg line="-project ${dev.dir.absolute}/Build/iPhone/Unity-iPhone.xcodeproj/"/> | |
<arg line="PROVISIONING_PROFILE=${provisioning.guid}"/> | |
<arg line="-sdk iphoneos"/> | |
<arg line='CODE_SIGN_IDENTITY="${codesign.identity}"'/> | |
<arg line='GCC_GENERATE_DEBUGGING_SYMBOLS=YES'/> | |
<arg line='DEBUG_INFORMATION_FORMAT=dwarf-with-dsym'/> | |
<arg line='DWARF_DSYM_FILE_SHOULD_ACCOMPANY_PRODUCT=YES'/> | |
<arg line='DEBUGGING_SYMBOLS=YES'/> | |
<arg line="-configuration Release"/> | |
</exec> | |
<exec executable="${xcrun.bin}" failonerror="true"> | |
<arg line="-sdk iphoneos"/> | |
<arg line="PackageApplication"/> | |
<arg line="-v ${dev.dir.absolute}/Build/iPhone/build/${APP_NAME}.app"/> | |
<arg line="-o ${dev.dir.absolute}/Build/iPhone/build/${APP_NAME}.ipa"/> | |
</exec> | |
<copy file="${dev.dir.absolute}/Build/iPhone/build/${APP_NAME}.ipa" tofile="${ios.build.deploy.folder}/${VERSION_STRING}.ipa"/> | |
</target> | |
<target name="compile-android" depends="clean"> | |
<echo message="Compiling unity project for android version ${VERSION_STRING}"/> | |
<echo message="${unity.bin} -projectPath ${dev.dir.absolute} -executeMethod PerformBuild.CommandLineBuildAndroid -batchmode -quit"/> | |
<exec executable="${unity.bin}" failonerror="true"> | |
<arg line="-projectPath ${dev.dir.absolute}"/> | |
<arg line="-executeMethod PerformBuild.CommandLineBuildAndroid"/> | |
<arg line="-batchmode"/> | |
<arg line="-quit"/> | |
</exec> | |
<copy file="${dev.dir.absolute}/build/android" tofile="${android.build.deploy.folder}/${VERSION_STRING}.apk"/> | |
<exec executable="curl" dir="${android.build.deploy.folder}"> | |
<arg line="--form file=@${VERSION_STRING}.apk '${BUILD_URL}/save_file.php?appname=${APP_NAME}'" /> | |
</exec> | |
</target> | |
<target name="zipDsym"> | |
<echo message="Zipping dSym"/> | |
<exec executable="zip" dir="${dev.dir.absolute}/Build/iPhone/build" failonerror="true"> | |
<arg value="-r"/> | |
<arg value="${APP_NAME}.app.dSYM.zip"/> | |
<arg value="${APP_NAME}.app.dSYM"/> | |
</exec> | |
</target> | |
</project> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// C# example | |
using UnityEditor; | |
using System.IO; | |
using System.Collections; | |
using UnityEngine; | |
using System.Collections.Generic; | |
class PerformBuild | |
{ | |
static string[] GetBuildScenes() | |
{ | |
List<string> names = new List<string>(); | |
foreach(EditorBuildSettingsScene e in EditorBuildSettings.scenes) | |
{ | |
if(e==null) | |
continue; | |
if(e.enabled) | |
names.Add(e.path); | |
} | |
return names.ToArray(); | |
} | |
static string GetBuildPath() | |
{ | |
return "build/iPhone"; | |
} | |
[UnityEditor.MenuItem("CUSTOM/Test Command Line Build Step")] | |
static void CommandLineBuild () | |
{ | |
Debug.Log("Command line build\n------------------\n------------------"); | |
string[] scenes = GetBuildScenes(); | |
string path = GetBuildPath(); | |
if(scenes == null || scenes.Length==0 || path == null) | |
return; | |
Debug.Log(string.Format("Path: \"{0}\"", path)); | |
for(int i=0; i<scenes.Length; ++i) | |
{ | |
Debug.Log(string.Format("Scene[{0}]: \"{1}\"", i, scenes[i])); | |
} | |
Debug.Log("Starting Build!"); | |
BuildPipeline.BuildPlayer(scenes, path, BuildTarget.iPhone, BuildOptions.None); | |
} | |
static string GetBuildPathAndroid() | |
{ | |
return "build/android"; | |
} | |
[UnityEditor.MenuItem("CUSTOM/Test Command Line Build Step Android")] | |
static void CommandLineBuildAndroid () | |
{ | |
Debug.Log("Command line build android version\n------------------\n------------------"); | |
string[] scenes = GetBuildScenes(); | |
string path = GetBuildPathAndroid(); | |
if(scenes == null || scenes.Length==0 || path == null) | |
return; | |
Debug.Log(string.Format("Path: \"{0}\"", path)); | |
for(int i=0; i<scenes.Length; ++i) | |
{ | |
Debug.Log(string.Format("Scene[{0}]: \"{1}\"", i, scenes[i])); | |
} | |
Debug.Log("Starting Android Build!"); | |
BuildPipeline.BuildPlayer(scenes, path, BuildTarget.Android, BuildOptions.None); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
unity.bin = /Applications/Unity/Unity.app/Contents/MacOS/Unity | |
xcode.bin = /usr/bin/xcodebuild | |
xcrun.bin = /usr/bin/xcrun | |
security.bin = /usr/bin/security | |
provisioning.guid = SOME-GUID-GOES-HERE | |
codesign.identity = iPhone Distribution: Joe Developer | |
build.dir = ../UnityClient/build | |
dev.dir = ../UnityClient/ | |
keychain.password = Woohoo | |
APP_NAME=honorbound | |
ios.build.deploy.folder = /Users/Shared/Jenkins/builds/ios | |
android.build.deploy.folder = /Users/Shared/Jenkins/builds/android | |
BUILD_URL = http://OUR-CUSTOM-BUILD-SERVER/ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment