首页 > 技术文章 > iOS app内部生成描述文件(一)看破描述文件

akforsure 2015-03-30 17:25 原文

  最近公司安排了一个项目 客户的需求如下

    1、app输入APN参数后 本机生成描述配置文件(也就是不要用apple配置.app ,现在改名叫Apple configurator.app) 

    2、描述文件需要本机直接安装 

  其他的就不说了

 

  我根本不会,所以网上的搜了一些文章,有用的不多。但是有一篇给了一个重要的提示,是一个PDF的名字:Enterprise_Deployment_Guide_CH.pdf。 这本书apple官网已经没有链接了,至少我没有搜索到。不多度娘还是蛮好的,可以下载到。这里面讲了iPhone配置文件的一些重要参数以及格式。 

  PDF里面的例子看上去是XML写的,不过细细研究一下。XML的格式是苹果自定义的,我猜想是不是Plist。幸运的是,我猜对了。。。

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 3 <plist version="1.0">
 4 <dict>
 5     <key>PayloadContent</key>
 6     <array>
 7         <dict>
 8             <key>PayloadContent</key>
 9             <array>
10                 <dict>
11                     <key>DefaultsData</key>
12                     <dict>
13                         <key>apns</key>
14                         <array>
15                             <dict>
16                                 <key>apn</key>
17                                 <string>1</string>
18                                 <key>username</key>
19                                 <string>2</string>
20                                 <key>password</key>
21                                 <string>3</string>
22                             </dict>
23                         </array>
24                     </dict>
25                     <key>DefaultsDomainName</key>
26                     <string>com.apple.managedCarrier</string>
27                 </dict>
28             </array>
29             <key>PayloadDescription</key>
30             <string>xxxx</string>
31             <key>PayloadDisplayName</key>
32             <string>APN描述文件</string>
33             <key>PayloadIdentifier</key>
34             <string>xxxxxx</string>
35             <key>PayloadOrganization</key>
36             <string>xxxx</string>
37             <key>PayloadType</key>
38             <string>com.apple.apn.managed</string>
39             <key>PayloadUUID</key>
40             <string>9A8C3A97-4FDF-49BA-979D-B256ECD73427</string>
41             <key>PayloadVersion</key>
42             <integer>1</integer>
43         </dict>
44     </array>
45     <key>PayloadDescription</key>
46     <string>设备配置的描述文件</string>
47     <key>PayloadVersion</key>
48     <integer>1</integer>
49     <key>PayloadDisplayName</key>
50     <string>APN</string>
51     <key>PayloadUUID</key>
52     <string>DC8AD461-A7E3-4E0C-B656-A556457644AC</string>
53     <key>PayloadType</key>
54     <string>Configuration</string>
55     <key>PayloadOrganization</key>
56     <string>xxxxx</string>
57     <key>PayloadIdentifier</key>
58     <string>xxxx</string>
59     <key>PayloadRemovalDisallowed</key>
60     <false/>
61 </dict>
62 </plist>

  喜欢尝试的coder,可以在Xcode里面见一个plist或者.mobileconfig的文件 把代码拷贝进去。TIPS:会XML的可以直接看啦,不会的话,右击->Open As->ASCII Property Plist  然后你就见到熟悉的Plist结构啦。。。

这里面的配置参数 请参考上面提到的PDF。说明一点 配置分两块 一个是Root 也就是最外面的框架,许多参数PDF都有说明;Root里面还有一个配置,结构类似,那是配置的主体 (可以有多个主体配置) , 然后呢 plist是一个NSDictionary,读取的话应该没问题的咯。

  好啦,描述文件我们已经看清了。

  To Be Continue  。。。

推荐阅读