XUPorter,a dependency porter from Unity to Xcode。XUPorter 可以读取 Xcode 工程文件并进行解析(再次感谢darktable的工作),之后在Unity工程的Assets目录下寻 找所有的.projmods文件,并根据文件内容向工程中添加文件或库。
将Github项目中的所有文件copy到Unity工程文件夹下的/Assets/Editor目录中,XUPorter使用一个改良版的MiniJSON来 进行。如果你的项目中已经在使用这个MiniJSON了的话,可以直接将XUPorter文件夹下的MiniJSON文件夹删掉;如果不一样的话,你可以 选择其中一个重构一下或者加上命名空间来解决类名冲突。接下来,Mods文件夹下是示例文件以及需要导入Xcode的文件。在看完以后你需要把Mods文 件夹下的所有.projmods文件以及Mods/iOS文件夹下的内容删除或者替换为你所需要的内容。
在这里提供了.unitypackege格式文件的下载,你也可以选择下载打包好的文件并导入你的工程,之后的步骤和上面一样。
.projmods文件是一个JSON格式的配置patch文件,定义了要如何设置Xcode工程。举个基本的例子,比如KKKeychain.projmods:
{ "group": "KKKeychain", "libs": [], "frameworks": ["Security.framework"], "headerpaths": [], "files": [], "folders": ["iOS/KKKeychain/"], "linker_flags": [], "excludes": ["^.*.meta$", "^.*.mdown$", "^.*.pdf$"]}
各参数定义如下:
group:所有由该projmods添加的文件和文件夹所属的Xcode中的group名称
libs:在Xcode Build Phases中需要添加的动态链接库的名称,比如libz.dylib
frameworks:在Xcode Build Phases中需要添加的框架的名称,比如Security.framework
headerpaths:Xcode中编译设置中的Header Search Paths路径
files:加入工程的文件名
folders:加入工程的文件夹,其中所有的文件和文件夹都将被加入工程中
linker_flags:添加到工程linker flag中的链接配置,比如-ObjC
excludes:忽略的文件的正则表达式,匹配的文件将不会被加入工程中
更多的例子可以参看Mods文件夹中的其他projmods文件。所有的定义路径都是基于当前projmods文件位置的相对路径。 最后,在完成projmods后,Unity会在编译完成后,调用XCodePostProcess的OnPostProcessBuild来对编译得到 的Xcode工程进行修改。
之后进一步要做的是为MiniJSON添加一个namespace,这样可以避免不必要的冲突。
1.overwriteBuildSetting里的参数不是xcode里面带空格的名称,需要在文档里选 这个问题之前弄了半天,才弄明白。不得不吐槽, XUPorter 东西是好东西,但是作者文档写得有点不友好。用起来得自己摸索很多东西。string参数对应xcode里面的build setting,参考的文档如下: Xcode Build Settings Reference: https://pe
XUPorter是unity导出xcode工程的自动化插件,因为后期Unity官方已经将相关API集成到引擎里,作者已经不再维护。 但对于大公司项目的自动化流程,短时间内更换一套API也是不太划算的,这里只记录一下修改XUPorter以兼容Unity2019.3之后导出xcode工程的UnityFramework形式。 其实很简单,先直接上代码,后面再讲原理。 //XCProject.cs中 Li
根据 宣雨松-Unity3D研究院之IOS全自动编辑framework、plist、oc代码(六十七) 改后的XUPorter 本来去年就准备提交了~不过忘了整理. 最近正好又需要修改了,于是同步了一下最新版本,整理了一下. 参考一下这个文件基本就会用了 比原版多了一个修改代码的功能,其实就是简单的文本替换. 已经提交了PR. using UnityEngine; #if UNITY_EDITO
https://github.com/onevcat/XUPorter 转载于:https://www.cnblogs.com/sifenkesi/p/5040060.html
配置模板 { "group": "GroupName", "libs": [], "frameworks": ["Security.framework"], "headerpaths": [], "files": [], "folders": ["iOS/KKKeychain/"], "excludes": ["^.*.meta$
移除标准库依赖 禁用标准库 项目默认是链接 Rust 标准库 std 的,它依赖于操作系统,因此我们需要显式通过 #![no_std] 将其禁用: os/src/main.rs //! # 全局属性 //! - `#![no_std]` //! 禁用标准库 #![no_std] fn main() { println!("Hello, rCore-Tutorial!"); }
添加了一些与CLANG相关的新属性: 如何配置项目以使用Xcode12.5部署此应用程序? $React-本机信息获取系统和库信息...System:OS:macOS 11.3 CPU:(4)x64 Intel(R)Core(TM)i3-8100B CPU@3.60 GHz内存:256.45MB/8.00 GB shell:3.2.57-/bin/bash二进制文件:node:10.16.0-/u
webpack项目中,页面文件移动后,找不到依赖 尝试过的方法: 1、删除node_modules 重新安装 2、安装 cache-loader@4.1.0 3、重启vscode 另外在package.json中这个依赖是有的 请问这个怎么解决?
移除运行时环境依赖 运行时系统 对于大多数语言,他们都使用了运行时系统(Runtime System),这可能导致 main 函数并不是实际执行的第一个函数。 以 Rust 语言为例,一个典型的链接了标准库的 Rust 程序会首先跳转到 C 语言运行时环境中的 crt0(C Runtime Zero)进入 C 语言运行时环境设置 C 程序运行所需要的环境(如创建堆栈或设置寄存器参数等)。 然后 C
我正在使用本机库格式OCR,添加jar并将dll放入progfile\common文件中,尽管我遇到以下错误,请帮助我。。。。 ibrary.load不满意LinkError: C:\Program Files\Common Files:无法找到依赖库java.lang.ClassLoader$NativeLoader.load(Native Method)在oader.java:1751Clas
我正在尝试将laravel项目从5.5升级到5.6。我遵循了文档中的说明 我在运行composer update时遇到此错误:此错误似乎与phpunit/phpunit有关,我将其升级到~7.0 onsort git:(硕士)✗ composer update加载具有包信息的composer存储库更新依赖项(包括require dev)无法将您的需求解析为可安装的包集。 问题1-结论:不要安装ph
当我从以下链接运行代码时,https://github.com/sagioto/lipreading/blob/master/lipreading-gui/src/main/java/edu/lipreading/gui/mainframe.java;我得到以下错误: 线程“Thread-6”java.lang.UnsatisfiedLinkError中出现异常:C:\users\harish r