app版本号 unity3d

2014-11-20 15:20:06 shaozucheng 阅读数 3051
  • Unity 值得看的500+ 技术内容列表

    Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

有时候制作App是需要做一个版本信息的功能,这时就需要读取当前版本号,下面我来介绍一种方法吧

在AndroidManifest.xml中设置程序的版本号等,如android:versionName="1.0.0"

那如果想在代码中获取这个版本号呢,可以用如下方法(这些修改版本号时只需要修改AndroidManifest.xml中的设置,不用修改代码了)


我们要读取的就是versionName,好啦,上代码吧

/**
     * 返回当前程序版本名 
     */
    public static String getAppVersionName(Context context) {
        String versionName = "";
        try {
            // ---get the package info---  
            PackageManager pm = context.getPackageManager();
            PackageInfo pi = pm.getPackageInfo(context.getPackageName(), 0);
            versionName = pi.versionName;
            if (versionName == null || versionName.length() <= 0) {
                return "";
            }
        } catch (Exception e) {
            Log.e("VersionInfo", "Exception", e);
        }
        return versionName;
    }

以后就只要修改AndroidManifest.xml中的versionName就行啦

只要调用这个方法就可以获取版本号啦,例如 某个textVew.setText(getAppVersionName(this));context这个参数传入一个Activity就行啦,好啦,就这么简单。

2012-01-09 13:05:08 jjiss318 阅读数 14070
  • Unity 值得看的500+ 技术内容列表

    Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

使用Unity3D也有一段时间了,由于团队一直使用SVN进行版本管理,现总结一下:

(1) Unity3D的二进制资源必须加锁进行版本控制,因为它没办法merge;

(2) Unity3D自己产生的C#工程相关文件,包括VS产生或者Mono产生的,都不需要归入版本控制;

(3) 在新加入项时,Unity3D会产生一个同名的.meta文件,这个文件记录了此项一个唯一的64位的guid,这个文件必须上传,否则会出现各种缺失的异常情况(比如脚本Miss等)

(4) 对于Library文件夹,有以下几个.Asset文件需要进行版本管理:

               TimeManager

               TagManager

               QualitySettings

               ProjectSettings

               NetworkManager

               InputManager

               EditorBuildSettings

               DynamicsManager

               AudioManager

即便如此,在使用Editor进行开发时,由于需要经常改动场景的.unity 文件,而这个是二进制的,所以需要得锁且不能Merge。感觉并行开发的难度还是比较大的,Unity3D还是比较适合个人开发者和较小团队开发,对于大型团队开发,无论是从版本管理还是代码结构上,都觉得不太方便和自然。

 

2017-09-22 09:16:37 qq_36848370 阅读数 773
  • Unity 值得看的500+ 技术内容列表

    Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

1,准备工作

Mac, iPad/iPhone

2,配置iOS工程


3,打开开发者账户  https://developer.apple.com/  选择 Certificates,Identifiers&Profiles 

4,申请证书

Certificates -All 点击+    选择 Development  -> ios App Development    --> Continue  --> Continue   ---> 钥匙串访问 --证书助理-- 从证书办法机请求证书.. 随便 写名字! 存贮在磁盘


然后在点击上传。。 证书就申请好了 点击下载  测试证书 

5 绑定 设备  的 UDID 

点击 Devices  --->All   ---> + 随便取一个名字   插入设备 弹出的iTunes中 找到 UDID 选择 Continue --Continue

6 创建新的描述文件  Provisioning Profiles --->All  ---> +  AppID 选择  你设置的 AppIDs (在Identifiers --AppIDs 里面添加) 然后继续 点击哦证书 ---继续 。选择刚才添加的设备 --- 然后填写一个名字  --- 下载下来

7 吧下载好的证书添加到钥匙串哩

8 打开unity3D导出到 Xcode打开  登陆你到账号  然后查找到之后点击运行。

接下来开始发不Appstore

1 打开开发者账户  https://developer.apple.com/  选择 Certificates,Identifiers&Profiles   Certificates -All 点击+   选择发布证书(Production --App Store and Ad Hoc )---> Continue   ---> 钥匙串访问 --证书助理-- 从证书办法机请求证书 名字 存贮到磁盘,然后 选择这个证书  点击Continue---下载 下来

2,打开Identifiers -->AppIDs  -->+ 创建AppID 这个要和 你发布到在unity设置到是一样的

3 登陆https://itunesconnect.apple.com  这个账号和之前那个一样  选择我的APP ---+ 选择我添加的名字 和语言和套装ID  sku 可以随便写(SKU您 App 专有的 ID, 此 ID 不会在 App Store 中显示。) 这时候先刚才下载那个发布证书添加在 钥匙串

4.回到 Xcode  选择 unity-iPhone --Edit  Scheme --build configuration 选择Release  

5。选择你到项目后面以Tests结尾的 signing 里面也要选择你的Team

6 选择 菜单烂的Product 下的 Archive 选择如图

7.按照默认选项选择

8.选择Xcode 选择菜单烂的第一个  Xcode --Open developer Tool  --  application loader 安装 打开


9选择刚才打包的 ipa包 上传 

10。有错误解决错误 我报错是图片问题 所以 又在 这个修改了图片





然后修改一下等级 再次提交 。


然后返回 https://itunesconnect.apple.com/ 这个网址 提交 app

2015-04-22 16:32:24 yxriyin 阅读数 1346
  • Unity 值得看的500+ 技术内容列表

    Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

      今天碰到的一个新问题是,app更新的时候,Application.persistentDataPath下的文件是不会被清空的。那么如果我始终不去删除,文件会越来越多。而且版本上也会有问题,毕竟上一个app对应的文件版本号其实我已经不想用了。

      所以增加了一个东西:主版本号。

     比如版本号是1.0.0.0,那么在线资源更新都是最后一位,1.0.0.1.

     而App更新则是1.0.1.0.

     这样的话,对比前面的三位,1.0.0和1.0.1,我就知道app发生更新,然后自己将整个目录删除。为了删除目录方便,文件统一放到下一层目录中。

     ok,处理完毕。然后开始测试新的情况。首先看模板表。

     以前是一直覆盖,现在的情况是如果文件存在就不覆盖。


     prefab基本处理完毕,然后处理场景。场景打包也是一样,但场景应该是可以压缩的。

     场景的加载和prefab有点区别:

    string sceneBundleName = PlatformConfig.PathOfArchive() + SceneUtil.loadSceneName + ".assetBundle";
        AssetBundle bundle = null;
        if(File.Exists(sceneBundleName))
        {
            WWW scene = new WWW("file://" + sceneBundleName);
            yield return scene;
            if(scene.error != null)
            {
                Debug.Log(scene.error);
            }
            bundle = scene.assetBundle;
            scene.assetBundle.LoadAll();
        }

        myAsync = Application.LoadLevelAsync(SceneUtil.loadSceneName);


     加载完毕后记得unload,因为场景如果不卸载整个文件是比较大的,内存容易爆掉。

     ok,手机上也测试通过了。

2019-10-14 19:05:20 qq_38506712 阅读数 306
  • Unity 值得看的500+ 技术内容列表

    Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

最近项目中需要获取安卓应用本身的应用名称及版本号,傻傻的走了不少弯路,以为只能通过安卓底层的方法在unity调用才行,后来才发现Unity中提供了相应的API。
1、首先尝试的方法:该方法并不适用于安卓,只能在Unity环境下实用;使设法UnityEditor中的PlayerSettings属性;

#if UNITY_STANDALONE_WIN || UNITY_EDITOR
        sndisplay.text = UnityEditor. PlayerSettings.bundleVersion;
        sndisplay2.text = UnityEditor.PlayerSettings.productName;
#endif

该方法可以获取到我想要获取的信息,但并不试用安卓,打包时会报错;
2、尝试调用安卓方法,但是我安卓并不熟悉,试了几次只好换另外思路,最终找到使用Unity带的API的方法:适用安卓。

string PackageName=Application.identifier;  //包名
string APPVer=Application.version;     //APK版本号
string ProName=Application.productName;   //产品名,应用名称
string CompName=Application.companyName;   //公司名称

3、当于熟悉安卓的大牛们可以直接在安卓中调取。