Unity3D iOS 使用 Dynamic Library 的 framework 时需要 添加 Embedded Binaries 的解决方案
2018-02-08 16:53
453 查看
这里需要用到 Unity3D Editor 提供的 PostProcessBuildAttribute 来实现。PostProcessBuildAttribute的本质是在unity编译完成之后,你可以利用这个做一件事情。
直接上代码:新建一个文件 TestBuildPostprocessor.cs
这样 Dynamic Library framework 的 Embedded Binaries 添加完成了。
直接上代码:新建一个文件 TestBuildPostprocessor.cs
#if UNITY_EDITOR using UnityEngine; using UnityEditor; using UnityEditor.Callbacks; using System.IO; using System.Diagnostics; #if UNITY_EDITOR_OSX using UnityEditor.iOS.Xcode; using UnityEditor.iOS.Xcode.Extensions; #endif public class TestBuildPostprocessor {//类名随便取 [PostProcessBuildAttribute(1)]//括号里的数字是有多个PostProcessBuildAttribute时执行顺序,0是第一个执行的 public static void OnPostprocessBuild(BuildTarget target, string pathToBuiltProject) { if (target != BuildTarget.iOS) { UnityEngine.Debug.LogWarning ("Target is not iPhone. XCodePostProcess will not run"); return; } #if UNITY_EDITOR_OSX //EmbedFrameworks string projPath = PBXProject.GetPBXProjectPath(pathToBuiltProject); PBXProject proj = new PBXProject(); proj.ReadFromString(File.ReadAllText(projPath)); string targetGuid = proj.TargetGuidByName("Unity-iPhone"); const string defaultLocationInProj = "Plugins/iOS";//framework 存放的路径 const string coreFrameworkName = "test.framework";// framework 的文件名 string framework = Path.Combine(defaultLocationInProj, coreFrameworkName); string fileGuid = proj.AddFile(framework, "Frameworks/" + framework, PBXSourceTree.Sdk); PBXProjectExtensions.AddFileToEmbedFrameworks(proj, targetGuid, fileGuid); proj.SetBuildProperty(targetGuid, "LD_RUNPATH_SEARCH_PATHS", "$(inherited) @executable_path/Frameworks");//如果没有这句话,运行会崩溃,报 image not found 错误 proj.WriteToFile (projPath); //EmbedFrameworks end #endif } } #endif
这样 Dynamic Library framework 的 Embedded Binaries 添加完成了。
相关文章推荐
- iOS-使用imageView添加图片无法展示的三种解决方案
- Unity3D在IOS、Android上使用C++并回调的究极解决方案
- Windows 8系统默认开启的.Net Framework版本是4.0,而部分用户可能需要使用到3.5或以下版本,简单添加方法
- Unity3D在IOS、Android上使用C++并回调的究极解决方案
- [Unity3D][Vuforia][ios]使用vuforia的unity3d库在ios中摄像头只显示黑色,不显示摄像头,NO CAMERA的解决方案
- ios中ASIHTTPRequest类库使用时需要添加的库
- 【iOS-Cocos2d游戏开发之十一】使用Box2d物理系统以及在cocos2d框架添加Box2d物理系统lib包的方法 推荐
- Unity3d使用蓝牙(bluetooth)开发IOS点对点网络游戏
- ImageList不能局部使用,即使新添加的Add也需要添加全局或者类级下使用(札记)
- 基于Unity3D的Android游戏添加google广告的方法——使用AdMob
- 【解决方案】.NET添加引用后,但在代码中使用using时却找不到命名空间?
- 使用赛孚耐数据保护解决方案在整个生命周期内确保信息安全白皮书连载一:需要新的数据保护方式原因
- iOS学习之UINavigationController详解与使用(一)添加UIBarButtonItem
- IOS-SegmentedControl(添加到Nav上)的简单使用方法
- Jmeter使用_StringFromFile函数需要添加编码方式
- IOS学习之UINavigationController详解与使用(一)添加UIBarButtonItem
- IOS学习之UINavigationController详解与使用(一)添加UIBarButtonItem
- 给grid添加tip,只需要改几个字就可以在很多地方使用
- 【iOS-Cocos2d游戏开发之十一】使用Box2d物理系统以及在cocos2d框架添加Box2d物理系统lib包的方法
- 在DLL编程中调用模版类时出现的类似"class“XXX”需要有 dll 接口由 class“XXX”的客户端使用"的warning的解决方案