使用到的工具和类库:
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);
}
}