-
-
Save masayuki5160/91999522b950747f4a0c to your computer and use it in GitHub Desktop.
| using UnityEngine; | |
| using UnityEditor; | |
| using System.Collections; | |
| public class BuildBatch : MonoBehaviour { | |
| // build iOS app | |
| [UnityEditor.MenuItem("Tools/Build Project AllScene iOS")] | |
| private static void BuildiOS(){ | |
| Debug.Log("##########iOS Build Start#########"); | |
| // 全てのシーンを取得する | |
| EditorUserBuildSettings.SwitchActiveBuildTarget( BuildTarget.iOS ); | |
| string[] allScene = new string[EditorBuildSettings.scenes.Length]; | |
| int i = 0; | |
| foreach( EditorBuildSettingsScene scene in EditorBuildSettings.scenes ){ | |
| Debug.Log ("scenePath(" + i + ")" + scene.path); | |
| allScene[i] = scene.path; | |
| i++; | |
| } | |
| // オプションの設定 | |
| BuildOptions opt = BuildOptions.Il2CPP; | |
| // Rendering | |
| PlayerSettings.renderingPath = RenderingPath.Forward; | |
| PlayerSettings.SetUseDefaultGraphicsAPIs(BuildTarget.iOS, false); | |
| PlayerSettings.gpuSkinning = true; | |
| PlayerSettings.iOS.sdkVersion = iOSSdkVersion.DeviceSDK; | |
| PlayerSettings.iOS.targetOSVersion = iOSTargetOSVersion.iOS_7_0; | |
| PlayerSettings.bundleIdentifier = "jp.co.masayuki.tanaka"; | |
| PlayerSettings.bundleVersion = "01.00.00"; | |
| PlayerSettings.SetPropertyInt("ScriptingBackend", 1, BuildTargetGroup.iOS); | |
| PlayerSettings.statusBarHidden = true; | |
| string errorMsg_Device = BuildPipeline.BuildPlayer( | |
| allScene, | |
| "iOSDevice", | |
| BuildTarget.iOS, | |
| opt | |
| ); | |
| if (string.IsNullOrEmpty(errorMsg_Device)){ | |
| Debug.Log ("##########Success iOS Device Build#########"); | |
| } else { | |
| Debug.Log ("##########Failed iOS Device Build#########"); | |
| Debug.Log (errorMsg_Device); | |
| } | |
| // シュミレーター用 | |
| /* | |
| PlayerSettings.iOS.sdkVersion = iOSSdkVersion.SimulatorSDK; | |
| string errorMsg_Simulator = BuildPipeline.BuildPlayer( | |
| allScene, | |
| "Simulator", | |
| BuildTarget.iOS, | |
| opt | |
| ); | |
| if (string.IsNullOrEmpty(errorMsg_Simulator)){ | |
| Debug.Log ("##########Success Simulator Build#########"); | |
| } else { | |
| Debug.Log ("##########Failed Simulator Build#########"); | |
| Debug.Log (errorMsg_Device); | |
| } | |
| */ | |
| } | |
| } |
| 参考サイト:コマンドラインからビルドする | |
| http://qiita.com/tyfkda/items/bfefb4742759af8392c4 | |
| ビルドコマンド | |
| $ /Applications/Unity/Unity.app/Contents/MacOS/Unity -batchmode -projectPath /Users/masayuki5160/Documents/autoBuild -buildTarget android -executeMethod BuildBatch.BuildAndroid -quit | |
| ↑失敗 | |
| 参考サイト: UnityPro+Github+Jenkins+DeployGateで自動ビルド&配布環境を作る その1 | |
| http://raharu0425.hatenablog.com/entry/2014/12/11/175700 | |
| $ /Applications/Unity/Unity.app/Contents/MacOS/Unity -quit -batchmode -projectPath /Users/masayuki5160/Documents/autoBuild -executeMethod BuildBatch.BuildiOS -logFile ~/build.log; cat ~/build.log |
| using UnityEngine; | |
| using UnityEditor; | |
| using UnityEditor.Callbacks; | |
| using UnityEditor.iOS.Xcode; | |
| using System.IO; | |
| // Editor ディレクトリ下にいれておくとXcodeプロジェクトを修正する処理をUnityからかける | |
| public class XcodeProjectUpdater | |
| { | |
| [PostProcessBuild] | |
| static void OnPostprocessBuild(BuildTarget buildTarget, string path) | |
| { | |
| if (buildTarget != BuildTarget.iOS) return; | |
| var plistPath = Path.Combine(path, "Info.plist"); | |
| var plist = new PlistDocument(); | |
| plist.ReadFromFile(plistPath); | |
| plist.root.SetString("TestEntry", "Hello"); | |
| plist.WriteToFile(plistPath); | |
| } | |
| } |
Unityから直接ビルドしてみたら、単純にAndroidのSDKが見つからなくてビルドできてない感じだった。。
てかエラーメッセージほしな。
こちらの方が参考になる?
UnityPro+Github+Jenkins+DeployGateで自動ビルド&配布環境を作る その1
http://raharu0425.hatenablog.com/entry/2014/12/11/175700
上記の方でテストしたらログはでたね.
/Applications/Unity/Unity.app/Contents/MacOS/Unity -quit -batchmode -projectPath /Users/masayuki5160/Documents/autoBuild -executeMethod BuildBatch.BuildiOS -logFile ~/build.log; cat ~/build.log
iOSのビルドがうまくいった
【Unity】バッチモードビルド
http://blog.shonanshachu.com/2013/06/unity.html
これがよくまとまっているぽい?
Xcodeでのプロジェクト設定まわりをUnityで自動化するために...
参考:UnityでのXcode設定をUnityEditorのスクリプトだけで自動化する
http://cflat-inc.hatenablog.com/entry/2015/01/05/074442
上記を参考にしたがどうもUnity5.xからはすでにUnityEditor.iOS.Xcodeは組み込み済みのようだ。
Xcode Manipulation API
https://bitbucket.org/Unity-Technologies/xcodeapi
上記より引用:The API is bundled with Unity 5.x. The documentation of the version bundled with Unity is provided here
PBXProject class in UnityEditor.iOS.Xcode
http://docs.unity3d.com/ScriptReference/iOS.Xcode.PBXProject.html
Unityの方がかいてくれてたー、まだ資料まとまってないのね。。
About Xcode Manipulation API in Unity
https://gist.github.com/keijiro/975b8439d25d58bf62ce
問題はないはずだけどなぜかうまくいかない..
調査中