public static void DoBuildIOS() { ReactExportSettings settings = UnityEditor.AssetDatabase.LoadAssetAtPath(ExportSettingsPath, typeof(ReactExportSettings)) as ReactExportSettings; string exportPath = Path.GetFullPath(Path.Combine(ProjectPath, settings.XcodeProjectRoot + "/UnityExport")); if (Directory.Exists(exportPath)) { Directory.Delete(exportPath, true); } PlayerSettings.iOS.sdkVersion = settings.iOSBuildMode; EditorUserBuildSettings.iOSBuildConfigType = settings.iOSBuildType; // Overrding settings from comand line args string[] arguments = Environment.GetCommandLineArgs(); int buildModeIndex = Array.FindIndex(arguments, item => item.StartsWith("buildMode=")); if (buildModeIndex != -1) { string[] value = arguments[buildModeIndex].Split('='); PlayerSettings.iOS.sdkVersion = value[1] == "simulator" ? iOSSdkVersion.SimulatorSDK : iOSSdkVersion.DeviceSDK; } int buildTypeIndex = Array.FindIndex(arguments, item => item.StartsWith("buildType=")); if (buildTypeIndex != -1) { string[] value = arguments[buildTypeIndex].Split('='); EditorUserBuildSettings.iOSBuildConfigType = value[1] == "debug" ? iOSBuildType.Debug : iOSBuildType.Release; } UnityEngine.Debug.LogFormat("BUILDING iOS - {0} - {1}", PlayerSettings.iOS.sdkVersion, EditorUserBuildSettings.iOSBuildConfigType); var options = BuildOptions.AcceptExternalModificationsToPlayer; var status = BuildPipeline.BuildPlayer( GetEnabledScenes(), exportPath, BuildTarget.iOS, options ); if (!string.IsNullOrEmpty(status)) { throw new Exception("Build failed: " + status); } }
public static void OnPostBuild(BuildTarget target, string pathToBuiltProject) { if (target != BuildTarget.iOS) { return; } ReactExportSettings settings = UnityEditor.AssetDatabase.LoadAssetAtPath(ExportSettingsPath, typeof(ReactExportSettings)) as ReactExportSettings; XcodeProjectRoot = settings.XcodeProjectRoot; XcodeProjectName = settings.XcodeProjectName; PbxFilePath = XcodeProjectName + ".xcodeproj/project.pbxproj"; Debug.LogFormat("Exporting project to iOS:\nprojectRoot='{0}' projectName='{1}'", XcodeProjectRoot, XcodeProjectName); PatchUnityNativeCode(pathToBuiltProject); UpdateUnityIOSExports(pathToBuiltProject); UpdateUnityProjectFiles(pathToBuiltProject); }