mobileprovision文件

mobileprovision文件被称为设备描述文件,在打包的过程中会用到它。

mobileprovision文件是二进制的,无法直接看到其内容, 可以通过security命令查看:

security cms -D -i xx.mobileprovision

下面是一个运行结果示例:

<?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>AppIDName</key>
	<string>XC Wildcard</string>
	<key>ApplicationIdentifierPrefix</key>
	<array>
	<string>NWLTN55N9S</string>
	</array>
	<key>CreationDate</key>
	<date>2017-08-30T02:50:24Z</date>
	<key>Platform</key>
	<array>
		<string>iOS</string>
	</array>
	<key>DeveloperCertificates</key>
	<array>
	    <data>................</data>
	</array>
	<key>Entitlements</key>
	<dict>
		<key>keychain-access-groups</key>
		<array>
			<string>NWLTN55N9S.*</string>
		</array>
		<key>get-task-allow</key>
		<true/>
		<key>application-identifier</key>
		<string>NWLTN55N9S.*</string>
		<key>com.apple.developer.team-identifier</key>
		<string>NWLTN55N9S</string>
	</dict>
	<key>ExpirationDate</key>
	<date>2018-08-30T02:50:24Z</date>
	<key>Name</key>
	<string>iOS Team Provisioning Profile: *</string>
	<key>ProvisionedDevices</key>
	<array>
		<string>844d88bd6691f7d9f2f70e6d8d1e3b6ef1b6c9be</string>
	</array>
	<key>TeamIdentifier</key>
	<array>
		<string>NWLTN55N9S</string>
	</array>
	<key>TeamName</key>
	<string>Fupin Liu</string>
	<key>TimeToLive</key>
	<integer>365</integer>
	<key>UUID</key>
	<string>d3957a16-8152-4018-989b-4bf4864d82c1</string>
	<key>Version</key>
	<integer>1</integer>
</dict>
</plist>

这个解析后的文件格式是一个plist文件格式, 下面是各个Key对应的作用说明:

  • Version
    这是文件的版本。固定不变。
  • CreationDate
    这个文件的创建时间。
  • ExpirationDate
    这个文件的过期时间。
  • TimeToLive
    这个文件的使用时长(单位是天)。
  • UUID
    这是文件的唯一ID。用来区别于其他的文件。Xcode有个PROVISIONING_PROFILE构建参数, 它的值就是mobileprovision文件的UUID。但是Xcode只知道UUID,去哪儿找这个UUID对应的mobileprovision文件呢? 其实,是去~/Library/MobileDevice/Provisioning\ Profiles/目录下找的。
  • TeamName
    开发团队名称。
  • TeamIdentifier
    团队的ID
  • ProvisionedDevices
    使用开发者证书进行签名的应用,才会有这个。因为开发证书是用来真机调试的,要想让某个真机能安装上某个App,必须在mobileprovision文件中包含了那个真机的UDID。 可以成为苹果开发者后, 登录开发者账户进行添加,不过,支持的设备不超过100个。
  • DeveloperCertificates
    证书信息