IOS InHouse模式下版本提示更新

采用iVersions控件

https://github.com/nicklockwood/iVersion

在appdelegate的initalize方法中加入

+ (void)initialize{
    //....
    //version.plist地址
    [iVersion sharedInstance].remoteVersionsPlistURL = @"https://xxx.com/..../versions.plist";
    //本地地址
    [iVersion sharedInstance].localVersionsPlistPath = @"versions.plist";
    //更新地址
    [iVersion sharedInstance].updateURL = [NSURL URLWithString:@"itms-services://?action=download-manifest&url=https://xxx.com/.../xxxx.plist"];
    //设置按钮为下载以及回见
    [iVersion sharedInstance].updatePriority = iVersionUpdatePriorityMedium;
    //避免一直发送
    [iVersion sharedInstance].checkAtLaunch = NO;
}

调用检查方法

[[iVersion sharedInstance] checkForNewVersion];

代理方法

// TODO: iVersion
/** 检测远程版本plist成功后 */
- (void)iVersionDidDetectNewVersion:(NSString *)version details:(NSString *)versionDetails{
}
/** 没有新版本 */
- (void)iVersionDidNotDetectNewVersion{
}
/** 有新版本是否提示下载 */
//- (BOOL)iVersionShouldDisplayNewVersion:(NSString *)version details:(NSString *)versionDetails{
//}
/** 选择下载更新触发 */
//- (void)iVersionUserDidAttemptToDownloadUpdate:(NSString *)version{
//}
/** 选择下次再说触发 */
//- (void)iVersionUserDidRequestReminderForUpdate:(NSString *)version{
//}
/** 远程地址获取成功后触发 */
//- (void)iVersionUserDidRequestReminderForUpdate:(NSString *)version{
//}

versions.plist样板

<?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>1.0.1</key>
	<array>
		<string>别问我</string>
		<string>自己看</string>
		<string>我什么都不知道</string>
	</array>
	<key>1.0.0</key>
	<array>
		<string>首发版本</string>
	</array>
</dict>
</plist>

更新用plist文件样板

<?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>http://xxx.ipa(你的inhouseIpa下载地址)</string>
				</dict>
			</array>
			<key>metadata</key>
			<dict>
				<key>bundle-identifier</key>
				<string>com.xxx.xxx(你的ipa的BundleID)</string>
				<key>bundle-version</key>
				<string>1.0.1(你的ipa的最新版本)</string>
				<key>kind</key>
				<string>software</string>
				<key>title</key>
				<string>XXX(你的ipa的名字)</string>
			</dict>
		</dict>
	</array>
</dict>
</plist>

备考:

生成的inhouse的version需要是最新版本,可以在info.plist中或者.project中修改

优先更新ipa然后提交更新用的plist文件,以及版本索引versions.plist文件

我只是作个记录,不会的别问我

你可能感兴趣的:(IOS InHouse模式下版本提示更新)