PBXProject.AddCapability
Declaration
public bool AddCapability(string targetGuid, iOS.Xcode.PBXCapabilityType capability, string entitlementsFilePath, bool addOptionalFramework);Параметры
| Параметр | Описание |
|---|---|
| targetGuid | GUID объекта, например, возвращаемый GetUnityFrameworkTargetGuid. |
| способность | Способность обеспечивать. |
| entitlementsFilePath | Путь к файлу прав, который будет использоваться для этой возможности. Информацию о содержимом файлов прав можно найти в Документация Apple |
| addOptionalFramework | Установите значение true, чтобы указать, что эта возможность требует дополнительных платформ. Установите значение false, если дополнительные платформы не требуются. |
Возвращаемое значение
логическое True, если возможность была успешно добавлена.
Описание
Добавляет в проект Xcode целевую функцию.
Некоторые возможности требуют дополнительной настройки в Xcode. Для большего контроля над конкретными настройками возможности используйте команду ProjectCapabilityManager class.
using System.Collections; using System.Collections.Generic; using System.IO; using UnityEngine; using UnityEditor; using UnityEditor.Callbacks; using UnityEditor.iOS.Xcode;
public class Sample_AddCapability { [PostProcessBuild] public static void OnPostprocessBuild(BuildTarget buildTarget, string pathToBuiltProject) {
// Stop processing if build target is not iOS if (buildTarget != BuildTarget.iOS) return;
// Initialize PBXProject string projectPath = PBXProject.GetPBXProjectPath(pathToBuiltProject);
PBXProject pbxProject = new PBXProject(); pbxProject.ReadFromFile(projectPath);
// Get GUIDs for UnityFramework and Main targets string mainTargetGuid = pbxProject.GetUnityMainTargetGuid(); string unityFrameworkTargetGuid = pbxProject.GetUnityFrameworkTargetGuid();
// Create an entitlements file for your capability string entitlementsFileName = "Example.entitlements";
PlistDocument plistDocument = new PlistDocument(); plistDocument.Create();
PlistElementDict rootDict = plistDocument.root; rootDict.SetString("com.apple.developer.applesignin", "Default");
plistDocument.WriteToFile(Path.Combine(pathToBuiltProject, entitlementsFileName));
// Add 'Sign in with Apple' capability to the proejct with the entitlements file specified pbxProject.AddCapability(mainTargetGuid, PBXCapabilityType.SignInWithApple, entitlementsFileName);
// Apply changes to the pbxproj file pbxProject.WriteToFile(projectPath); }
}