PBXProjectExtensions.AddAppExtension
Declaration
public static string AddAppExtension(iOS.Xcode.PBXProject proj, string mainTargetGuid, string name, string bundleId, string infoPlistPath);Параметры
| Параметр | Описание |
|---|---|
| проект | Неявный параметр this для метода расширения. |
| mainTargetGuid | GUID главного объекта, с которым будет связано приложение. |
| имя | Имя расширения приложения. |
| bundleId | пакет ID расширения приложения. В пакет ID должен быть включен пакет родительского приложения ID.; |
| infoPlistPath | Путь к документу расширения приложения Info.plist. |
Возвращаемое значение
строка GUID новой цели.
Описание
Создает расширение приложения.
using UnityEditor; using UnityEngine; using UnityEditor.iOS.Xcode; using UnityEditor.iOS.Xcode.Extensions; using System.IO; using UnityEditor.Callbacks;
public class ScriptBatch : MonoBehaviour { [PostProcessBuild] private static void PostProcessBuild_iOS(BuildTarget target, string buildPath) {
Directory.CreateDirectory(buildPath + "/appext");
File.Copy("Assets/extension/TodayViewController.h", buildPath + "/appext/TodayViewController.h"); File.Copy("Assets/extension/TodayViewController.m", buildPath + "/appext/TodayViewController.m");
PBXProject proj = new PBXProject(); string projPath = PBXProject.GetPBXProjectPath(buildPath); proj.ReadFromFile(projPath);
string targetGuid = proj.GetUnityFrameworkTargetGuid();
string newTarget = proj.AddAppExtension(targetGuid, "appext", "com.unity3d.product.appext", "appext/Info.plist"); proj.AddFileToBuild(newTarget, proj.AddFile(buildPath + "/appext/TodayViewController.h", "appext/TodayViewController.h")); proj.AddFileToBuild(newTarget, proj.AddFile(buildPath + "/appext/TodayViewController.m", "appext/TodayViewController.m")); proj.AddFrameworkToProject(newTarget, "NotificationCenter.framework", true); proj.WriteToFile(projPath); } }