.plist ios

2018-03-26 17:41:14 SHTLoveXX 阅读数 6155

最近决定捋一遍iOS基础,先从项目的配置说起吧


    // 方法一,获取文件的全部路径, 解析 info.plist

    NSString *filePath = [[NSBundle mainBundle]pathForResource:@"Info.plist" ofType:nil];

    NSDictionary *infoDic = [NSDictionary dictionaryWithContentsOfFile:filePath];

    

    //方法二  直接获取

    NSDictionary *infoDicNew = [NSBundle mainBundle].infoDictionary;

    NSLog(@"info.plist %@",infoDicNew);



    

    // 综上所述, 方法2是系统对方法一的一个封装

    

 info.plist 实则是一个字典,可在Xcode中可视化。 获取 系统版本、BundleID 等都需要用到


2018-03-26 17:39:49.874458+0800 test[5712:549958] info.plist {

    BuildMachineOSBuild = 17D47;

    CFBundleDevelopmentRegion = en;

    CFBundleExecutable = test;

    CFBundleIdentifier = "com.sht.test";

    CFBundleInfoDictionaryVersion = "6.0";

    CFBundleName = test;

    CFBundleNumericVersion = 16809984;

    CFBundlePackageType = APPL;

    CFBundleShortVersionString = "1.0";

    CFBundleSupportedPlatforms =     (

        iPhoneSimulator

    );

    CFBundleVersion = 1;

    DTCompiler = "com.apple.compilers.llvm.clang.1_0";

    DTPlatformBuild = "";

    DTPlatformName = iphonesimulator;

    DTPlatformVersion = "11.2";

    DTSDKBuild = 15C107;

    DTSDKName = "iphonesimulator11.2";

    DTXcode = 0920;

    DTXcodeBuild = 9C40b;

    LSRequiresIPhoneOS = 1;

    MinimumOSVersion = "11.2";

    UIDeviceFamily =     (

        1,

        2

    );

    UILaunchStoryboardName = LaunchScreen;

    UIMainStoryboardFile = Main;

    UIRequiredDeviceCapabilities =     (

        armv7

    );

    UISupportedInterfaceOrientations =     (

        UIInterfaceOrientationPortrait,

        UIInterfaceOrientationLandscapeLeft,

        UIInterfaceOrientationLandscapeRight

    );

}


2014-10-20 17:12:11 zhangping871 阅读数 1529

在旧版本Xcode创建的工程中,这个配置文件的名字就叫“Info.plist”

 项目中其他Plist文件不能带有“Info”这个字眼,不然会被错认为是传说中非常重要的“Info.plist”。同样,若你新接触一个项目,想要看它的配置信息,可以找项目名-info的plist文件,项目中还有一个InfoPlist.strings的文件,跟Info.plist文件的本地化相关

打开info.plist文件如下图:

wps_clip_image-10742

我们可以看到这是一个字典,字典中存放的是很多的健值对。我们可以在这里添加一些项目的配置。下面介绍一些比较重要的我们经常用到的一些属性:

常见属性(红色部分是用文本编辑器打开时看到的key)

Localiztion native development region(CFBundleDevelopmentRegion)-本地化相关

Bundle display name(CFBundleDisplayName)-程序安装后显示的名称,限制在10-12个字符,如果超出,将被显示缩写名称。默认显示的是工程名称,如果你修改了这个值,有两点需要注意:

1. 卸载之前已经部署的应用

2. 清除Xcode的缓存,从新部署

不然app的名称修改不会成功。

Icon file(CFBundleIconFile)-app图标名称,一般为Icon.png

Bundle version(CFBundleVersion)-应用程序的版本号,每次往App Store上发布一个新版本时,需要增加这个版本号

Main storyboard file base name(NSMainStoryboardFile)-主storyboard文件的名称,在项目的工程配置可以修改Main Inerface属性也可以设置主storyboard文件,并且修改后info.plist文件中的信息会自动修改。

Bundle identifier(CFBundleIdentifier)-项目的唯一标识,部署到真机时用到,这是与其他app区分的唯一标识,若此标识相同,后部署的app将覆盖之前部署的app。

实际上plist文件本质上就是一种特殊的XML文件。

2018-04-27 19:44:28 tiantiandjava 阅读数 9334

第一步:

在使用MACBOOK导出ipa的时候,我们得到ipa的同时,还得到一份plist文件

看到我们导出的plist,需要注意的地方有两个已经用中文标注。

一个是URL,一个是bundle-identifier

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>items</key>
    <array>
        <dict>
            <key>assets</key>
            <array>
                <dict>
                    <key>kind</key>
                    <string>software-package</string>
                    <key>url</key>
                    <string>请填上你的ipa下载地址(比如:http://127.0.0.1/app.ipa)</string>
                </dict>
            </array>
            <key>metadata</key>
            <dict>
                <key>bundle-identifier</key>
    <string>请填上你的开发者证书用户名</string>
                <key>bundle-version</key>
                <string>1.0</string>
                <key>kind</key>
                <string>software</string>
                <key>title</key>
                <string>请填上标题</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

1,URL就是我们的ipa存放位置,比如你拥有一台外网服务器,ip地址是12.34.56.78,ipa存放在APP这个文件夹,那么这个地方就填上

http://12.34.56.78/app/应用名字.ipa

2,bundle-identifier就是你申请证书时的名字,格式一般是somebody.app名字

3,这两个point都应该是在你使用XCODE导出ipa的时候要注意填写的

============================

第二步:

使用七牛存储的目的,在于它为我们提供了https连接

具体操作步骤可以参考
http://blog.csdn.net/longxibendi/article/details/37601747

操作完毕后,只要把生成的超链接复制下来
http://dn-定义的空间名字.qbox.me/应用名字.plist
改成
https://dn-定义的存储空间名字.qbox.me/应用名字.plist

填入到以下的HTML文件,并且添加到网页服务器中发布

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>应用名字</title>
</head>
<body>
<h1 style="font-size:80pt">如果点击无法下载安装,请复制超链接到浏览器中打开<h1/>
<h1 style="font-size:100pt">
<a title="iPhone" href="itms-services://?action=download-manifest&url=https://dn-你的空间名字.qbox.me/你的Plist存放位置/你的plist名字.plist">
Iphone Download</a><h1/>
</body>
</html>

第三步:
比如你发布这份HTML网页的地址是

http://12.34.56.78/iphoneAPP.html

把这个生成好的超链接,放到http://cli.im/url,生成二维码,再用手机扫一扫。即可完成整个企业级APP使用Plist发布的流程。


2016-11-07 12:54:51 huangfei711 阅读数 2519

学习 IOS 开发也有一段时间了,但却一直没有对工程中的 Info.plist 文件作挖掘。今天主要针对此文件作一下详细分析。

建立一个工程后,会在Supporting files下面看到一个”工程名-Info.plist”的文件,这个是对工程做一些运行期配置的文件,很重要,不能删除。如果使用文本编辑器打开这个文件,会发现这是一个XML格式的文本文件,一般我们不用文本编辑器直接编辑这个文件,而是通过Xcode编辑。

文件示例图(比较常用的几个选项用红色矩形框标识):

这里写图片描述

下面对部分常用选项作分析解释(括号内使用文本编辑器打开时看到的 key):

Localiztion native development region(CFBundleDevelopmentRegion) —— 本地化相关,如果用户所在地没有相应的语言资源,则用这个key的value来作为默认。

Bundle identifier(CFBundleIdentifier) —— 软件的唯一标识字符串,如果使用模拟器跑应用,这个字段没有用处,如果需要把应用部署到设备上,必须生成一个证书,而在生成证书的时候,在 apple 的网站上需要增加相应的 app IDs. 这里有一个字段 Bundle identifier,如果这个Bundle identifier 是一个完整字符串,那么文件中的这个字段必须和后者完全相同,如果 app IDs 中的字段含有通配符*,那么文件中的字符串必须符合后者的描述。
该标识符的另外一个比较常见的用处是辅助系统后台的推送机制。举个例子,有时候手机的 QQ 和微信并没有打开,但却也能接收到消息推送,此处便是标识符的功劳,系统通过识别标识符而得知准确的应用推送对象,不会说把 QQ 消息推送到微信端。

Bundle versions string, short(CFBundleShortVersionString) —— 应用程序的版本号(面向用户市场)。

Bundle version(CFBundleVersion) —— 编译版本号。

Application require iPhone environment(LSRequiresIPhoneOS) —— 用于指示程序包是否只能运行在iPhone OS 系统上。Xcode自动加入这个键,并将它的值设置为true。不应该改变这个键的值。

supported interface orientations(UISupportedInterfaceOrientations) —— 程序默认支持的方向。

在 Info.plist 文件中修改部分选项可能不是很方便,实际上,还有一个可视化界面可供选择修改——工程文件首页。
如下图所示:
这里写图片描述

在这个界面就能够更直观地去修改部分选项,这里面的选项大多数都可以与 Info.plist 文件对应。

下面以获取软件版本信息为例,说说 Info.plist 文件的读取操作:

方法一:

// File:获取文件的全路径 —— 文件在哪(主bundle)
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"Info.plist" ofType:nil];
// 1. 解析 Info.plist
NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:filePath];
// 2.获取当前的版本号
NSString *Version = dict[@"CFBundleShortVersionString"];

NSLog(@"%@",Version);

方法二:

NSString Version = [NSBundle mainBundle].infoDictionary[@"CFBundleShortVersionString"];

NSLog(@"%@",Version);

由此可见,方法二实现起来更方便,实际上是对方法一的封装。

2016-03-18 14:43:00 weixin_30340617 阅读数 205

解决办法:

1.首先系统的Info.Plist文件是只读文件 并不能 写入。目前我个人是没有办法存入,官方属性 可以看到是readOnly

2.那么我们 就想代码修改Info.Plist文件怎么办呢,小编也在网上Google了一下,大部分的做法是将Info.plist文件在iOS的沙盒文件里面存入一份一模一样的文件,那么现在手机里就有两份info.plist文件 一份是系统的info.plist文件,另一份是你存入的Info.plist,那么你想更改就更改 那份沙盒的info.plist文件吧。

转载于:https://www.cnblogs.com/shenyangxiaohuo/p/5292034.html

iOS 的info.plist

阅读数 3452