您好,欢迎访问一九零五行业门户网

itms-services协议:跳转网页部署及PHP动态生成 iOS渠道包IPA一键安装之plist

相信很多人尝试过使用揣果测试库(http://ipa.chuaiguo.com/)的无线安装测试ipa安装包功能。有心人一定注意到其itms-services协议的一键安装地址的url=部分并不是我们常见的plist文件路径,而是一个install.php通过增加参数的形式自动生成输出了plist。之前因为笔者的项目中渠道包不多,所以懒得去写这样一个文件帮助部署,可是最近,笔者的项目的渠道包不断增多了,显然部署多个plist文件管理上似乎越来越麻烦了,于是笔者开始仿照揣果实现了并结合自己项目的需求,实现了php动态生成 ios渠道包ipa一键安装之plist。这里跟大家分享一下,希望对您有所帮助。
ios 一键安装下载中...
startelement('dict'); foreach($dict as $k => &$v) { $x->writeelement('key', $k); xmlwritevalue($x, $v); } $x->endelement();} //向xml节点中写入数组(array)function xmlwritearray(xmlwriter $x, &$arr) { $x->startelement('array'); foreach($arr as &$v) xmlwritevalue($x, $v); $x->endelement();}//根据类型向xml节点中写入值function xmlwritevalue(xmlwriter $x, &$v) { if (is_int($v) || is_long($v)) $x->writeelement('integer', $v); elseif (is_float($v) || is_real($v) || is_double($v)) $x->writeelement('real', $v); elseif (is_string($v)) $x->writeelement('string', $v); elseif (is_bool($v)) $x->writeelement($v?'true':'false'); elseif (isdict($v)) xmlwritedict($x, $v); elseif (is_array($v)) xmlwritearray($x, $v); else { trigger_error(unsupported data type in plist ($v), e_user_warning); $x->writeelement('string', $v); }}//创建plistfunction createplist(){ $ssl_server = 'https://www.lessney.com/'; $target_name = 'sample'; $bundle_identifier = 'com.lessney.' . $target_name; $subtitle = 'zero status inc.'; $title = '示例程序'; $versionname = $_get['v']; if (!$versionname) { $versionname = '1.0.0'; } $versioncode = str_replace('.', '', $versionname); $channelid = $_get['cid']; if (!$channelid) { $channelid = '0'; } header('content-type: application/xml'); $plist = new xmlwriter(); $plist->openmemory(); $plist->setindent(true); $plist->startdocument('1.0', 'utf-8'); $plist->writedtd('plist', '-//apple//dtd plist 1.0//en', 'http://www.apple.com/dtds/propertylist-1.0.dtd'); $plist->startelement('plist'); $plist->writeattribute('version', '1.0'); $pkg = array(); $pkg['kind'] = 'software-package'; $pkg['url'] = $ssl_server . $target_name .'_v' . $versioncode . '_' .$channelid . '.ipa'; $displayimage = array(); $displayimage['kind'] = 'display-image'; $displayimage['needs-shine'] = true; $displayimage['url'] = $ssl_server . 'icon.png'; $fullsizeimage = array(); $fullsizeimage['kind'] = 'full-size-image'; $fullsizeimage['needs-shine'] = true; $fullsizeimage['url'] = $ssl_server . 'itunesartwork.png'; $assets = array(); $assets[] = $pkg; $assets[] = $displayimage; $assets[] = $fullsizeimage; $metadata = array(); $metadata['bundle-identifier'] = $bundle_identifier; $metadata['bundle-version'] = $versionname; $metadata['kind'] = 'software'; $metadata['subtitle'] = $subtitle; $metadata['title'] = $title; $items0 = array(); $items0['assets'] = $assets; $items0['metadata'] = $metadata; $items = array(); $items[] = $items0; $root = array(); $root['items'] = $items; xmlwritevalue($plist, $root); $plist->endelement(); $plist->enddocument(); return $plist->outputmemory();}//输出plistecho createplist();?>
其它类似信息

推荐信息