Unity打包IOS时。自动化配置文件。
2017-02-13 17:55
344 查看
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEditor; using UnityEditor.iOS.Xcode; using UnityEditor.Callbacks; using System.IO; public class SSIOSBuildSetting : MonoBehaviour { [PostProcessBuild] static void OnPostprocessBuild(BuildTarget target, string pathToBuildProject) { string unityEditorAssetPath = Application.dataPath; if (target != BuildTarget.iOS) { Debug.LogWarning("Target is not iPhone. XcodePostProcess will not run"); return; } ModifyProj(pathToBuildProject); SetPlist(pathToBuildProject); } public static void ModifyProj(string pathToBuildProject) { string _projPath = PBXProject.GetPBXProjectPath(pathToBuildProject); PBXProject _pbxProj = new PBXProject(); _pbxProj.ReadFromString(File.ReadAllText(_projPath)); string _targetGuid = _pbxProj.TargetGuidByName("Unity-iPhone"); //*******************************添加framework*******************************// //_pbxProj.AddFrameworkToProject(_targetGuid, "StoreKit.framework", true); //*******************************添加tbd*******************************// // _pbxProj.AddFileToBuild(_targetGuid, _pbxProj.AddFile("usr/lib/libz.tbd", "Frameworks/libz.tbd", PBXSourceTree.Sdk)); //*******************************设置buildsetting*******************************// //_pbxProj.SetBuildProperty(_targetGuid, "CODE_SIGN_IDENTITY", code_sign_identity); _pbxProj.SetBuildProperty(_targetGuid, "ENABLE_BITCODE","YES"); _pbxProj.SetBuildProperty(_targetGuid, "DEVELOPMENT_TEAM", "JK62X52E5W"); _pbxProj.SetBuildProperty(_targetGuid, "ARCHS", "$(ARCHS_STANDARD)"); File.WriteAllText(_projPath, _pbxProj.WriteToString()); } static void SetPlist(string pathToBuildProject) { string _plistPath = pathToBuildProject + "/Info.plist"; PlistDocument _plist = new PlistDocument(); _plist.ReadFromString(File.ReadAllText(_plistPath)); PlistElementDict _rootDic = _plist.root; //_rootDic.SetString("View controller-based status bar appearance", "NO"); //_rootDic.SetString("CFBundleDisplayName", "StellarSails"); //_rootDic.SetString("CFBundleLocalizations", "en"); //string PlistAdd = @" // <key>CFBundleLocalizations</key> // <array> // <string>en</string> // <string>zh_CN</string> // </array>"; //_rootDic.CreateArray("Localizations"); _rootDic.SetString("CFBundleVersion", "1.0"); _rootDic.SetBoolean("Application has localized display name", true); File.WriteAllText(_plistPath, _plist.WriteToString()); } }
这个脚本放到Unity里的Editor文件夹里面就可以了。刚学到了这个东西。因为每次打包IOS需要配置好多东西。所以写了点代码去实现自动化配置。以上是我写的简单的代码。</p><p>后来又看到了雨松大大的帖子雨松大大的关于自动化配置IOS设置的帖子。以及找到的Epps大哥的帖子。Epps关于自动化配置IOS设置。有想研究的同学建议看看
相关文章推荐
- 思科网络设备IOS及配置文件自动化定时备份与恢复
- Unity编译iOS工程的自动化配置(XUPorter)
- unity打包iOS,用Xcode打不开xcodeproj文件
- 使EntLib5的Unity配置文件显示提示信息
- 路由器交换机密码恢复、IOS与配置文件更新、IOS灾难恢复
- Unity的外部配置文件使用方法
- 基于 STAF 和 XML 配置文件的跨平台自动化测试部署
- EJB打包的BUilder.xmll文件配置
- 类项目中的配置文件app.config在打包安装后的信息获取的问题
- Unity Application Block--通过配置文件读取映射
- <转>Unity中Web.Config文件的配置与调用
- Unity中Web.Config文件的配置与调用
- Cisco IOS Cookbook 中文精简版第一章路由器配置和文件管理
- WEB程序打包详解:(连接SQL2005数据库,修改配置文件,建立虚拟目录)
- 用tftp 下载/更新ios和配置文件
- 配置文件的备份和IOS 的备份
- Unity使用独立配置文件的方法
- Unity Application Block-配置文件的使用-示例(附源码下载)
- Unity 学习笔记(2) -- 配置文件的使用
- 路由器交换机密码恢复、IOS与配置文件更新、IOS灾难恢复