Unity 导出 xcode 工程 并给 Info.plist 文件添加字段

ops/2024/11/26 14:02:35/

Unity 导出 xcode 工程 并给 Info.plist 文件添加字段

在 Editor 文件夹下新建 xxx.cs 脚本
实现静态方法

    [PostProcessBuild]public static void OnPostprocessBuild(BuildTarget target, string pathToBuiltProject){// Unity 导出 Xcode 工程自动调用这个方法 }

例子 一

using UnityEngine;
using System.IO;
using UnityEditor;
using UnityEditor.Callbacks;
using UnityEditor.iOS.Xcode;public class AFUpdatePlist
{// 在导出 xcode 工程后调用此方法[PostProcessBuild]public static void OnPostprocessBuild(BuildTarget target, string pathToBuiltProject){if (target == BuildTarget.iOS){// pathToBuiltProject 是导出的 xcode 工程目录// 拼接 Info.plist 文件目录string plistPath = pathToBuiltProject + "/Info.plist";// 使用 Unity 提供的 plist 文件读取工具解析文件PlistDocument plist = new PlistDocument();plist.ReadFromString(File.ReadAllText(plistPath));// 获取根节点PlistElementDict rootDict = plist.root;// 设置一个 bool 类型的键值对rootDict.SetBoolean("AppsFlyerShouldSwizzle", true);// 设置一个字符串类型的键值对rootDict.SetString("NSAdvertisingAttributionReportEndpoint", "https://appsflyer-skadnetwork.com/");// 修改完毕,将内容写入到文件File.WriteAllText(plistPath, plist.WriteToString());Debug.Log("Info.plist updated with AppsFlyerShouldSwizzle");}}
}

例子 二

using UnityEngine;
using System.IO;
using UnityEditor;
using UnityEditor.Callbacks;
using UnityEditor.iOS.Xcode;public class ModifyIOSInfoPlist : Editor
{[PostProcessBuild]public static void OnPostprocessBuild(BuildTarget target, string pathToBuiltProject){Debug.Log("ModifyIOSInfoPlist");if (target == BuildTarget.iOS){Debug.Log("ModifyIOSInfoPlist Info.plist");string plistPath = pathToBuiltProject + "/Info.plist";PlistDocument plist = new PlistDocument();//plist.ReadFromString(File.ReadAllText(plistPath));plist.ReadFromFile(plistPath);PlistElementDict rootDict = plist.root;rootDict.SetString("LSMinimumSystemVersion", "13.0");File.WriteAllText(plistPath, plist.WriteToString());Debug.Log("Info.plist updated with LSMinimumSystemVersion");}}
}

http://www.ppmy.cn/ops/136842.html

相关文章

赛氪媒体支持“2024科普中国青年之星创作交流活动”医学专场落幕

2024年11月15日下午,由中国科普作家协会、科普中国发展服务中心主办,什刹海文化展示中心承办,并携手国内产学研一体融合领域的领军者——赛氪网共同支持的“2024科普中国青年之星创作交流活动”医学科普专场,在什刹海文化展示中心…

全面解读RuoYi 系列项目不同版本与应用场景

目录 前言1. RuoYi 系列简介2. RuoYi 系列版本解析2.1 RuoYi(单体版)技术特点:适用场景:优点:局限性: 2.2 RuoYi-Vue(前后端分离版)技术特点:适用场景:优点&a…

CPU性能优化--性能分析方法

由于linux perf是非常流行的性能分析工具,因此本书使用该工具。该工具在绝大部分linux发行版本中都可以使用,这使得他的用户覆盖范围很广,此外,该工具是开源的。用户可以通过它了解典型剖析工具内部运行机制。这对理解本书讲到的概…

网络安全防范体系及设计原则

一、引 言   随着信息化进程的深入和互联网的快速发展,网络化已经成为企业信息化的发展大趋势,信息资源也得到最大程度的共享。但是,紧随信息化发展而来的网络安全问题日渐凸出,网络安全问题已成为信息时代人类共同面临的挑战&a…

深入解析分布式遗传算法及其Python实现

目录 深入解析分布式遗传算法及其Python实现目录第一部分:分布式遗传算法的背景与原理1.1 遗传算法概述1.2 分布式遗传算法的引入1.3 分布式遗传算法的优点与挑战优点:挑战:第二部分:分布式遗传算法的通用Python实现2.1 基本组件的实现第三部分:案例1 - 基于多种交叉与变异…

微表情识别系统

🏡作者主页:点击! 🤖编程探索专栏:点击! ⏰️创作时间:2024年11月25日8点23分 神秘男子影, 秘而不宣藏。 泣意深不见, 男子自持重, 子夜独自沉。 论文链接 点击开启你的论文编程之旅h…

ROS机器视觉入门:从基础到人脸识别与目标检测

前言 从本文开始,我们将开始学习ROS机器视觉处理,刚开始先学习一部分外围的知识,为后续的人脸识别、目标跟踪和YOLOV5目标检测做准备工作。我采用的笔记本是联想拯救者游戏本,系统采用Ubuntu20.04,ROS采用noetic。 颜…

备赛蓝桥杯--算法题目(1)

1. 链表求和 . - 力扣(LeetCode) class Solution { public:ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {ListNode *head nullptr, *tail nullptr;int carry 0;while (l1 || l2) {int n1 l1 ? l1->val: 0;int n2 l2 ? l2->val:…