You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity构建Xcode项目后如何自动为Pods设置签名团队?

解决Unity构建Xcode后自动设置FBSDK子Target签名团队的方法

方法1:使用Unity编辑器后处理脚本自动配置

创建一个C#脚本,放到Unity项目的Assets/Editor目录下,它会在每次iOS构建完成后自动修改Xcode项目的签名配置:

using UnityEngine;
using UnityEditor;
using UnityEditor.Callbacks;
using UnityEditor.iOS.Xcode;
using System.IO;

public class XcodeSignatureAutoConfig
{
    [PostProcessBuild(999)]
    public static void OnPostProcessBuild(BuildTarget target, string buildPath)
    {
        if (target != BuildTarget.iOS) return;

        // 读取Xcode项目文件
        string projectPath = PBXProject.GetPBXProjectPath(buildPath);
        PBXProject xcodeProject = new PBXProject();
        xcodeProject.ReadFromString(File.ReadAllText(projectPath));

        // 获取主Target的签名团队ID
        string mainTargetGuid = xcodeProject.GetUnityMainTargetGuid();
        string teamId = xcodeProject.GetBuildPropertyForConfig(
            mainTargetGuid, 
            xcodeProject.GetBuildConfigNames(mainTargetGuid)[0], 
            "DEVELOPMENT_TEAM"
        );

        // 找到FBSDK的子Target并设置签名
        string fbTargetGuid = xcodeProject.TargetGuidByName("FBSDKCoreKit-FacebookSDKStrings");
        if (!string.IsNullOrEmpty(fbTargetGuid))
        {
            foreach (string config in xcodeProject.GetBuildConfigNames(fbTargetGuid))
            {
                xcodeProject.SetBuildPropertyForConfig(fbTargetGuid, config, "DEVELOPMENT_TEAM", teamId);
                xcodeProject.SetBuildPropertyForConfig(fbTargetGuid, config, "CODE_SIGN_STYLE", "Automatic");
            }
        }

        // 保存修改
        File.WriteAllText(projectPath, xcodeProject.WriteToString());
    }
}

脚本说明

  • 自动读取Unity-iphone主Target的签名团队ID,同步给FBSDKCoreKit-FacebookSDKStrings子Target
  • 开启自动签名模式,避免手动选择签名方式
  • 仅在iOS构建时触发,不影响其他平台

方法2:通过CocoaPods Podfile配置(若使用Pods管理依赖)

如果项目用CocoaPods集成FBSDK,可在Podfile中添加以下代码,强制子Target继承主项目的签名设置:

post_install do |installer|
  installer.pods_project.targets.each do |target|
    next unless target.name == 'FBSDKCoreKit-FacebookSDKStrings'
    
    target.build_configurations.each do |config|
      # 继承主项目的签名团队,或直接写你的团队ID
      config.build_settings['DEVELOPMENT_TEAM'] = '$(inherited)'
      config.build_settings['CODE_SIGN_STYLE'] = 'Automatic'
    end
  end
end

注意事项

  • 若直接写团队ID,需替换成你自己的开发者团队ID(可在Apple开发者后台查看)
  • 修改Podfile后,下次执行pod install或Unity构建时会自动生效

内容的提问来源于stack exchange,提问作者Scozirge2

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 13:55:20