Mac Unity3D 打包

本文介绍如何使用Unity进行iOS项目的打包,并特别关注了Xcode项目配置的自动化处理过程,包括添加必要的frameworks和库文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用到的工具和类库:

XUPorter:  https://github.com/onevcat/XUPorter

Mac-VS:

https://docs.microsoft.com/zh-cn/visualstudio/mac/setup-vsmac-tools-unity

http://www.monodevelop.com/download/#fndtn-download-mac


打包后的类库修改:

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

public class MyXcodeProject : MonoBehaviour {


	[PostProcessBuildAttribute(0)]
	public static void OnPostprocessBuild(BuildTarget buildTarget, string pathToBuiltProject)
	{
		// BuildTarget需为iOS
		if (buildTarget != BuildTarget.iOS)return;

		// 初始化
		var projectPath = pathToBuiltProject + "/Unity-iPhone.xcodeproj/project.pbxproj";
		PBXProject pbxProject = new PBXProject();
		pbxProject.ReadFromFile(projectPath);
		string targetGuid = pbxProject.TargetGuidByName("Unity-iPhone");

		// 添加flag
		//pbxProject.AddBuildProperty(targetGuid, "OTHER_LDFLAGS", "-ObjC");
		// 关闭Bitcode
		//pbxProject.SetBuildProperty(targetGuid, "ENABLE_BITCODE", "NO");

		// 添加framwrok
		pbxProject.AddFrameworkToProject(targetGuid, "Security.framework", false);
		pbxProject.AddFrameworkToProject(targetGuid, "CoreTelephony.framework", false);

		//添加lib
		AddLibToProject(pbxProject, targetGuid, "libstdc++.6.0.9.tbd");

		// 应用修改
		File.WriteAllText(projectPath, pbxProject.WriteToString());
	}

	static void AddLibToProject(PBXProject inst, string targetGuid, string lib)
	{
		string fileGuid = inst.AddFile("usr/lib/" + lib, "Frameworks/" + lib, PBXSourceTree.Sdk);
		inst.AddFileToBuild(targetGuid, fileGuid);
	}
}



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值