#if UNITY_IOS || UNITY_IPHONE
public class PbxProjectSetTraceless : PbxProjectSet
{
    public PbxProjectSetTraceless(string source, string target) : base(source, target)
    {
    }

    public override void Action()
    {
        // 注:无需修改代码,将会直接替换UnityAppController.mm来植入适配代码
        
        // 复制Channel文件
        CopyFileOnly("Channel.txt", "Data/Raw");
        // 配置开发团队
        pbxProject.SetTeamId(projectGuid, "2WBWK5S456");
        // 替换文件
        CopyFileOnly("Info.plist", string.Empty);
        CopyFileOnly("UnityAppController.mm", "Classes");
        // 权限文件
        AddFile("traceless.entitlements", "Unity-iPhone");
        // SdkHub文件
        AddFile("SdkHub.h", "Classes/Unity");
        AddFile("SdkHub.m", "Classes/Unity");
        // 第三方Frameworks文件
        AddFile("AlipaySDK.framework", string.Empty);
        AddFile("TracelessSdk.framework", string.Empty);
        AddDirectory("bundle", "Libraries/Plugins");
        // 内置Frameworks文件
        pbxProject.AddFrameworkToProject(projectGuid, "StoreKit.framework", false);
        pbxProject.AddFrameworkToProject(projectGuid, "JavaScriptCore.framework", false);
        pbxProject.AddFrameworkToProject(projectGuid, "Security.framework", false);
        pbxProject.AddFrameworkToProject(projectGuid, "CoreText.framework", false);
        pbxProject.AddFrameworkToProject(projectGuid, "CoreTelephony.framework", false);
        pbxProject.AddFrameworkToProject(projectGuid, "libz.1.2.5.tbd", false);
        pbxProject.AddFrameworkToProject(projectGuid, "libc++.1.tbd", false);
        SetAllConfigs();
        Save();
    }

    protected override void SetTargetConfig(string guid)
    {
        pbxProject.SetBuildPropertyForConfig(guid, "CODE_SIGN_ENTITLEMENTS", "Unity-iPhone/traceless.entitlements");
        pbxProject.SetBuildPropertyForConfig(guid, "DEVELOPMENT_TEAM", "2WBWK5S456");
        pbxProject.SetBuildPropertyForConfig(guid, "ENABLE_BITCODE", "NO");
        pbxProject.SetBuildPropertyForConfig(guid, "PRODUCT_BUNDLE_IDENTIFIER", "com.jjyou.qyxmlios.traceless");
        pbxProject.AddBuildPropertyForConfig(guid, "FRAMEWORK_SEARCH_PATHS", "$(PROJECT_DIR)");
        pbxProject.AddBuildPropertyForConfig(guid, "OTHER_LDFLAGS", "-ObjC");
    }
}
#endif