unity plist plist文件怎么打开开

Unity3D研究院之5.x自带API打包xcode添加framework、plist_Locked_新浪博客
Unity3D研究院之5.x自带API打包xcode添加framework、plist
本文固定链接:&/archives/4026
​&雨松MOMO&日&于&雨松MOMO程序研究院&发表
之前项目一直在用XUPorter
&。今天无意间发现其实Unity已经帮我们实现了一套。如果你用的unity4.x开发,可以把它的代码放到你的工程里用。https://bitbucket.org/Unity-Technologies/xcodeapi&如果你用的是unity5.x开发,那么unity已经将这个API内置了/ScriptReference/iOS.Xcode.PBXProject.html
本来想自己写个例子试试,
谷歌了一下发现已经有了。&http://cflat-/entry//074442
usingUnityEngine;
usingUnityEditor;
usingUnityEditor.Callbacks;
usingUnityEditor.iOS.Xcode;//
←さっきいれたXcodeAPI
usingSystem.Collections;
usingSystem.IO;
publicclassXcodeProjectMod:MonoBehaviour
ちょっとしたユーティリティ関数(http://goo.gl/fzYig8を参考)
&&&&internalstaticvoidCopyAndReplaceDirectory(stringsrcPath,stringdstPath)
&&&&&&&&if(Directory.Exists(dstPath))
&&&&&&&&&&&&Directory.Delete(dstPath);
&&&&&&&&if(File.Exists(dstPath))
&&&&&&&&&&&&File.Delete(dstPath);
&&&&&&&&Directory.CreateDirectory(dstPath);
&&&&&&&&foreach(varfile
inDirectory.GetFiles(srcPath))
&&&&&&&&&&&&File.Copy(file,Path.Combine(dstPath,Path.GetFileName(file)));
&&&&&&&&foreach(vardir
inDirectory.GetDirectories(srcPath))
&&&&&&&&&&&&CopyAndReplaceDirectory(dir,Path.Combine(dstPath,Path.GetFileName(dir)));
&&&&[PostProcessBuild]
&&&&publicstaticvoidOnPostprocessBuild(BuildTarget
buildTarget,stringpath)
&&&&&&&&if(buildTarget==BuildTarget.iPhone)
&&&&&&&&&&&&stringprojPath=PBXProject.GetPBXProjectPath(path);
&&&&&&&&&&&&PBXProject
proj=newPBXProject();
&&&&&&&&&&&&
&&&&&&&&&&&&proj.ReadFromString(File.ReadAllText(projPath));
&&&&&&&&&&&&stringtarget=proj.TargetGuidByName("Unity-iPhone");
&&&&&&&&&&&&//
システムのフレームワークを追加
&&&&&&&&&&&&proj.AddFrameworkToProject(target,"AssetsLibrary.framework",false);
&&&&&&&&&&&&
&&&&&&&&&&&&//
自前のフレームワークを追加
&&&&&&&&&&&&CopyAndReplaceDirectory("Assets/Lib/mylib.framework",Path.Combine(path,"Frameworks/mylib.framework"));
&&&&&&&&&&&&proj.AddFileToBuild(target,proj.AddFile("Frameworks/mylib.framework","Frameworks/mylib.framework",PBXSourceTree.Source));
&&&&&&&&&&&&//
ファイルを追加
&&&&&&&&&&&&varfileName="my_file.xml";
&&&&&&&&&&&&varfilePath=Path.Combine("Assets/Lib",fileName);
&&&&&&&&&&&&File.Copy(filePath,Path.Combine(path,fileName));
&&&&&&&&&&&&proj.AddFileToBuild(target,proj.AddFile(fileName,fileName,PBXSourceTree.Source));
&&&&&&&&&&&&//
Yosemiteでipaが書き出せないエラーに対応するための設定
&&&&&&&&&&&&proj.SetBuildProperty(target,"CODE_SIGN_RESOURCE_RULES_PATH","$(SDKROOT)/ResourceRules.plist");
&&&&&&&&&&&&//
フレームワークの検索パスを設定?追加
&&&&&&&&&&&&proj.SetBuildProperty(target,"FRAMEWORK_SEARCH_PATHS","$(inherited)");
&&&&&&&&&&&&proj.AddBuildProperty(target,"FRAMEWORK_SEARCH_PATHS","$(PROJECT_DIR)/Frameworks");
&&&&&&&&&&&&
&&&&&&&&&&&&//
&&&&&&&&&&&&File.WriteAllText(projPath,proj.WriteToString());
博客等级:
博客积分:0
博客访问:27,842
关注人气:0
荣誉徽章:它们吃的都是官粮,有的动物伙食标准比我们高得多。
从村民家借来梯子,司机才拿着手机爬了出来。
声明:本文由入驻搜狐公众平台的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场。
  最近Vuforia + Unity iOS总能折腾出各种问题.容易令人捉急.
  下面是我遇到的很新的3个常见问题:
  1. 问题: Unity (4.5.4, 4.5.5, 4.6) + Vuforia 3.0.9 iOS下闪退.
  Unity生成Xcode文件后打开,设置Info.plist文件.
  点击Informaition Property List,右方出现加号,点加号.
  Key输入
  UIInterfaceOrientation或 Initial interface orientation. (都一样的)
  Value输入
  UIInterfaceOrientationPortrait或 Portrait (bottom home button)
  2. 问题: Unity 5 + Vuforia 4 黑屏,无相机画面.
  点File菜单-&Build Setting…-&Player Setting…
  在PlayerSetting的Other Setting处,把Graphics API设置为Open GL ES 2.0.
  默认的Automatic可能会启用Metal,而目前还不支持的原因吧.
  3. 问题: Unity5 + Vuforia 4 无法生成ipa文件,总报错提示Codesign Failed.
  打开终端,用cd命令进入Xcode项目目录.
  cd /user/TangoChen/Projects/DemoExports
  我们将用终端一步步生成ipa:
Clean  xcodebuild clean -project 项目名称.xcodeproj -configuration Release -alltargets
Archive  xcodebuild archive -project 项目名称.xcodeproj -scheme 项目名称-archivePath 项目名称.xcarchive
Export  xcodebuild -exportArchive -archivePath 项目名称.xcarchive -exportPath 项目名称-exportFormat ipa
  * 项目名称通常是iPhone-Unity
  这样就可以在目录下找到iPhone-Unity.ipa了.
  更多教程就在。
  本文链接:/ARzx/849.html
欢迎举报抄袭、转载、暴力色情及含有欺诈和虚假信息的不良文章。
请先登录再操作
请先登录再操作
微信扫一扫分享至朋友圈
搜狐公众平台官方账号
生活时尚&搭配博主 /生活时尚自媒体 /时尚类书籍作者
搜狐网教育频道官方账号
全球最大华文占星网站-专业研究星座命理及测算服务机构
个人喜爱AR技术,所有想写写一些关于个人对AR看法的文章
主演:黄晓明/陈乔恩/乔任梁/谢君豪/吕佳容/戚迹
主演:陈晓/陈妍希/张馨予/杨明娜/毛晓彤/孙耀琦
主演:陈键锋/李依晓/张迪/郑亦桐/张明明/何彦霓
主演:尚格?云顿/乔?弗拉尼甘/Bianca Bree
主演:艾斯?库珀/ 查宁?塔图姆/ 乔纳?希尔
baby14岁写真曝光
李冰冰向成龙撒娇争宠
李湘遭闺蜜曝光旧爱
美女模特教老板走秀
曝搬砖男神奇葩择偶观
柳岩被迫成赚钱工具
大屁小P虐心恋
匆匆那年大结局
乔杉遭粉丝骚扰
男闺蜜的尴尬初夜
客服热线:86-10-
客服邮箱:Unity发布至IOS的流程(踩坑记录)
博客专家
Unity发布至IOS的流程(踩坑记录)
这篇文章主要用于记录本人亲身经历过的Unity发布到IOS平台所遇到的所有坑(其实也就是一些自己并不明白的强制设定),以便于后续再有类似需求时少走些弯路。我的环境:Unity 5.2.2 个人版(破解版)macOS Sierra 10.12.1Xcode 8.2iPhone 6S真机一台以上只是我的个人环境,如果因为unity的版本不同或是mac的版本不同,或是xcode的版本不同,很可能会遇到一些未知的坑,这里我也不可能把所有坑都踩一遍了,所以只能看个人的运气如何了,运气好一次就能成功,运气不好,卡在这里随随便便就是几天时间过去了,也没个头绪。好吧,那现在开始吧。第一步:安装环境Unity 5.2.2个人版直接在unity官网下载,破解补丁;没有真机或黑苹果的话,安装虚拟机VM,虚拟机的安装流程百度很多,这里只有一个重点,VM安装成功以后需要使用对应的unlocker破解,破解以后才能直接安装apple os系统,这里有mac os x10.11.1的镜像系统,安装完后可以升级到最新版: 密码:bc8yXcode可以直接在app store下载,当然速度十分不可观,所以最好还是选择在苹果开发者中心下载,百度搜索苹果开发者中心第二步:Unity发布Xcode工程这里有两种方式,第一种是在windows上用Unity发布,第二种是在Mac上用Unity发布,这两种方式的操作流程几乎没什么区别,但某些项目因为引用了特殊插件的原因发布可能会失败,而在windows上发布失败的项目在mac上一般都是能成功的,我也不知道这是什么原因了,只能猜测是windows上缺少某些必要的组件,所以最好还是在mac系统上用unity发布xcode的工程,无论是真机、黑苹果还是虚拟机都行。1、首先,在Build Setting里将当前平台切换至IOS(点击platform中的IOS,选择switch platform),Run in Xcode as 选择Release,其他保持默认2、点击player setting,选择other setting(其他的设置可以保持默认,splash image 加载背景如果需要的话自行替换)& & Auto Graphics API取消勾选,并取消Metal(选中Metal,点击右边的减号删除),让APP只用OpenGLES2渲染& & Bundle Identfier按照标准的格式com.XXXX.XXXX,注意这里的XXXX不能写得太随意,否则Xcode编译可能不会通过& & Target SDK选择Device SDK(真机),因为我这里是真机测试,模拟器的坑还没去踩,没有真机的请选择另一个(模拟器),不过不敢预测是否有更大的坑& & AOT Compatibility Options 填上字符串:nrgctx-trampolines=8096,nimt-trampolines=8096,ntrampolines=4048 &参考的,如果你的APP有不知名的闪退情况的话,请加上这条属性& & 其他的保持默认属性即可,大致如下:然后就可以直接Build发布了(mac系统中build and run会在发布完成后自动打开xcode),当然这里可能会报另一个错(几率性的),如下,大概就是DLL加载不出来的意思,我这里是unityengine.UI及部分组件加载失败,这自然是致命性的,除非项目中没用到UGUI。解决办法参考的,思路就是在unity的安装文件夹中找到这些加载失败的DLL,将他们全部移出去,然后运行一次unity,记住,千万不要保存场景,只运行打开窗口就可以了,接着关闭unity,将之前移出去的所有文件再放回原位,然后再打开unity,奇迹般的是,这些错误不复存在了,之前无法加载的组件已经加载成功了,只能说目前这应该算是一个bug吧。第三步:用Xcode打开工程,进行相关设置并发布1、打开Xcode,选择右下角的Open another Project,选择我们用Unity发布出来的Xcode工程并打开2、到这里你不清楚要更改哪些配置的话,直接点击上方菜单栏Product -& Build生成项目,生成失败会弹出报错信息3、查看报错信息,点击左侧的一个三角感叹号图标,并再次点击你的项目配置文件(项目的名称),我这里是Unity-iPhone,显示所有配置信息4、到这里我们发现报错的原因是team id为空,所以我们必须为APP指定一个team id5、点击这个team输入框后面的蓝色按钮,选择Add an Account,弹出一个窗口后,这里会提示你用Apple ID登录,有账号的话就直接登录,没有的话就点击左下角Create Apple ID去申请一个,这是免费申请的,过程很简单就不再描述了6、选中我们登录的ID,可以在右下角(根据网络问题可能会加载缓慢)看到ID默认就有的一个个人团队证书7、好,我们关闭这个窗口,这下直接在team输入框后面的蓝色按钮的下拉框中就可以选择我们的个人团队证书了8、我们再次biuld项目,如果不出意外应该可以直接build成功,但据说是因为unity版本问题,这里还会报这一个错,如下,解决的办法在,很简单,直接删除NORETURN就可以了,这算是个bug吧,unity更新到5.3.2就修复了这一bug9、然后,到这里再次build项目的话应该就能成功了,不过如果项目用到了摄像机以及定位之类的,还需要在配置信息中阐明使用的理由,不然发布到真机就会黑屏或闪退,在xcode编辑界面的左侧点击一个文件夹图标,展开项目的工程目录,选中info.plist,在Information Property List选项后面点击加号,在新生成的行的key值中选择:Privacy - Camera Usage Description &,value值选项中输入要使用摄像机的理由,内容随意,只是用户在打开app的时候会看到这个string,如果写得太不友好,用户自然有可能会拒绝app访问摄像头,然后你就没辙了10、然后用数据线连接上真机,在xcode编辑界面左上方选择我们的iPhone设备11、现在就可以再次biuld,成功以后点击左上角的三角箭头运行图标,当显示Running XXX on iPhone的时候,就可以打开你的iPhone,app就能自动运行了,不能自动的手动点击图标运行就可以了这里其实就是最麻烦的,很多做unity开发的并没有接触过IOS开发,自然也对xcode的一些标准配置完全就不清楚,当然我这里也并没有发布至App store,只是发布到真机的测试版,后面有时间再添加发布到app store的流程。发布越狱版:
我的热门文章
即使是一小步也想与你分享& 升级最新的Xocde6后,如果不是最新版本的unity,虽然也可以也可以正常的build,但如果想通过unity连真机进行profile的话,就会在xocde中报错,这个的主要原因是unity的配置里并没有最新Xcode版本的识别,unity4.5.4升级可以解决这个问题,但如果因为项目需要而无法升级的情况下,就需要自己手动设置来解决了。
操作也很简单,就是UUID在plist之间拷贝的工作。首先,进入Application目录,显示Xcode的包内容,打开/Applications/Xcode.app/Contents/Info.plist,拷贝里面的DVTPlugInCompatibilityUUID内容
Xcode plist : /Applications/Xcode.app/Contents/Info.plist然后,在Applications/Unity/里找到unity3d,显示包内容,在/Contents/PlaybackEngines/iOSSupport/Tools/OSX/Unity4XC.xcplugin选择Unity4XC.xcplugin显示包内容,找到里面的Contents/Info.plist
打开plist,把之前的复制的DVTPlugInCompatibilityUUID添加到DVTPlugInCompatibilityUUIDs里。
Unity plist : /Applications/Unity/Unity.app/Contents/PlaybackEngines/iOSSupport/Tools/OSX/Unity4XC.xcplugin/Contents/Info.plist重新启动unity,就可以正常的使用unity来进行真机profile了。
不过因为PowerVR的tbdr架构设计,我们是无法再unity里profile到ios的gpu信息的,如果想进行gpu调试,建议还是使用Xcode的Analyze功能好一些
另外这周恰好再做unity PBR的优化工作,结果一个只有20多draw call的场景,在一台ios8.02的ipad air只有不到10fps,比之前在ios7.x上测试时慢了很多,另外一台升级到ios8.1的pad ari就有20多fps,但等我升级为xcode6.1后在发布,fps又降为不到10fps,不知道是unity的问题还是ios本身的bug,打算升级到最新u3d再试试。
阅读(...) 评论()ma_haile 的BLOG
用户名:ma_haile
文章数:38
评论数:25
访问量:600156
注册日期:
阅读量:5863
阅读量:12276
阅读量:399186
阅读量:1089330
51CTO推荐博文
本章目标:& plist 文件的读写操作
在xcode中创建一个项目 会在supportion files 目录下 看见一个已plist后缀类型的文件,这个文件 是以 key value 存放的键 值对的值。它全名是:Property List,属性列表文件,它是一种用来存储串行化后的对象的文件。属性列表文件的扩展名为.plist&,因此通常被称为&plist文件。plist文件是标准的xml格式的。& 我们在日常开发中 可以用它 来存储 一些系统的 的用户信息,系统的配置信息等。
本章 我们来看看plist 文件是 如何读写的
在具体操作之前我们来先了解下几个专业的名词 :
NsBundler 主束 束是一个特定的文件夹类型,其中的内容遵循特定的结构,应用程序喝框架都是束, NsBundler 一个主要的作用是获取添加到项目的Resoureces文件加的资源。
NSDictionary 字典 就是key-value对的集合。&key是字符串(NSString),value是对象指针。
启动Xcode 创建一个名为&HelloWord&新项目:界面模板选择为 single view appliction ,不会创建的同学 去看上一章喔& 项目信息填写如下图。填写完成后 选择项目保存位置
在Supporting Files 目录下 创建一个新文件& 一个新的Plist 文件
Supporting files -& new file& -& ios -& Resourece -& Property List&
创建后命名为 citys 并保存& 改文件会出现在 Supporting Files 目录下面
打开他 并添加 值 如图 :
&该文件 在后面的 源码中有 , 各位童鞋 可以去下载 节省下载时间
在本章里面 我们 没用到界面 所有数据 在 日志中查看
下面看代码
&& //创建主束 &
&&& NSBundle *bundle=[NSBundle mainBundle];
&& //读取plist文件路径
&&& NSString *path=[bundle pathForResource:@&citys& ofType:@&plist&];
&& //读取数据到 NsDictionary字典中
&&& NSDictionary *dictionary=[[NSDictionary alloc]initWithContentsOfFile:path];
&&& NSLog(@&size is %d&,[dictionary count]);
&&& //NSLog(@&data is %@&,dictionary);
&&& NSArray *array=[dictionary allKeys];
&& // 循环输出字典中的& data 数据
&& && for(id key in dictionary)
&&&&&&& NSArray *arrays=[dictionary objectForKey:key];
&&&&&&& for(int i=0;i&[arrays count];i++){
&&&&&&&&&&& NSLog(@&key: %d,value: %@&,i,[arrays objectAtIndex:i]);
把上面的代码添加到 委托器中的- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
保存运行 ,各位童鞋 就可以看到 log 控制台中看到 输出的数据了。 如下
iphone_Sample_PlistReadAndWrite[864:f803] key: 0,value: 广州
00:44:10.143 iphone_Sample_PlistReadAndWrite[864:f803] key: 1,value: 深圳
00:44:10.143 iphone_Sample_PlistReadAndWrite[864:f803] key: 2,value: 肇庆
00:44:10.143 iphone_Sample_PlistReadAndWrite[864:f803] key: 3,value: 佛山
00:44:10.143 iphone_Sample_PlistReadAndWrite[864:f803] key: 4,value: 东莞
00:44:10.143 iphone_Sample_PlistReadAndWri。。。。。。。 省略
在我们平时的手机开发中需要保存一些用户数据,操作数据。 plist 可以算是其中的一种方法了,下面我们来看看 plist 文件的写操作。
程序继续沿用上面的程序
在 ios中要写入数据 ,那我们的数据 保存在哪儿呢, 是沙盒, 每个程序的数据只能保存在沙盒中, 同样我们的数据 也是保存在沙盒中。 少废话了 ,直接看代码
&//plist write
&&& //创建一个可变长度的NSMutableDictionary 对象 该对象专门用于存储数据的
&&& NSMutableDictionary *data=[[NSMutableDictionary alloc]init];
&&& //添加数据
&&& [data setObject:@&one& forKey:@&1&];
&&& [data setObject:@&two& forKey:@&2&];
&&& [data setObject:@&three& forKey:@&3&];
&&& [data setObject:@&four& forKey:@&4&];
&&& //要往沙盒中写数据当然要先取的沙盒目录啦
&&& NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
&&& NSString *plistPaht=[paths objectAtIndex:0];
&&& //取得完整的文件名
&&& NSString *fileName=[plistPaht stringByAppendingPathComponent:@&textdeom.plist&];
&&& NSLog(@&fileName is%@&,fileName);
&&& //创建并写入文件
&&& [data writeToFile:fileName atomically:YES];
&&& //检查是否写入
&&& NSMutableDictionary *writeData=[[NSMutableDictionary alloc]initWithContentsOfFile:fileName];
&&& NSLog(@&write data is :%@&,writeData);
上面我们创建了一个NSMutableDictionary 可变长度的字典,并添加元素,然后在写入沙盒中,最后并重新读取出来,& 这一章涉及了 沙盒的 内容,大家 先了解这里,后面我们会再讲沙盒的
上面的代码添加到 委托器中的- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
保存运行程序 效果如下 :
&运行程序会输出 沙盒的地址 ,和我们程序给 给 plist 写入的 值
好了 这一章就到这里, 欢迎 各位童鞋 拍砖 。
代码下载地址 :
/ext/down_att.php?aid=36012&code=5477
&本文出自 “” 博客,请务必保留此出处
了这篇文章
附件下载:  
类别:┆阅读(0)┆评论(0)
请输入验证码:

我要回帖

更多关于 unity3d plist 的文章

 

随机推荐