private function pakIos($channel, $invite, $c) { if (!empty($channel)) { $path = "../package/"; if (!file_exists($path)) { //mkdir("$path", 0700); } $ipaUrl = _PAK_IOS_IP_ . "/pack.php?channel={$channel}&c={$c}"; if (!empty($invite)) { $ipaUrl .= "&code={$invite}"; } $sql = "SELECT sys_value from z_sys_conf WHERE sys_key = 'ios_version_zaibei'"; $versionRe['version'] = $this->versionModel->query($sql)[0]['sys_value']; if (empty($versionRe['version'])) { return array('status' => -1, 'error' => '版本号无法获取'); } $ipaName = $this->pakName($channel, $invite, $c) . "_" . trim($versionRe['version']) . ".ipa"; $plistName = $this->pakName($channel, $invite, $c) . ".plist"; //生成plist文件 $plistContent = $this->iosTem($ipaName, trim($versionRe['version'])); $isWrite = $this->wPlistfile($plistName, $plistContent); if (!$isWrite) { return array('status' => -2, 'error' => 'plist文件生成失败'); } $plistUrl = 'https://www.hongbaosuoping.com/plist/' . $plistName; // how it works if (file_exists($path . $ipaName)) { return array('status' => 1, 'error' => '成功', "url" => $plistUrl); } //生成ipa包 $packName = $path . $ipaName; $headerFile = 'headerFile'; exec("wget --server-response -O {$packName} -o {$headerFile} '{$ipaUrl}'"); // 获取ipa包 $file_size = $this->getContentLengthFromHeaderFile($headerFile); curl_short(_DOMAIN_ . "/cron/ipa_all/checkCDN?ipaName={$ipaName}&invite={$invite}&channel={$channel}"); // 异步访问 chackcdn链接, 改变打包状态 //判断远程文件是否已存在 if (!file_get_contents($plistUrl)) { return array('status' => -3, 'error' => '无法获取plist文件'); } return array('status' => 1, 'error' => '成功', "url" => $plistUrl); } return array('status' => 0, 'error' => '打包失败'); }
private function pakIos($channel, $invite, $c) { if (!empty($channel)) { $path = "../package/"; if (!file_exists($path)) { //mkdir("$path", 0700); } $ipaUrl = _PAK_IOS_IP_ . "/pack.php?channel={$channel}&c={$c}"; if (!empty($invite)) { $ipaUrl .= "&code={$invite}"; } // $versionRe = $this->versionModel->getIosVersion(); $sql = "SELECT sys_value from z_sys_conf WHERE sys_key = 'ios_version_zaibei'"; $versionRe['version'] = $this->versionModel->query($sql)[0]['sys_value']; if (empty($versionRe['version'])) { return array('status' => -1, 'error' => '版本号无法获取'); } $ipaName = $this->pakName($channel, $invite, $c) . "_" . trim($versionRe['version']) . ".ipa"; $plistName = $this->pakName($channel, $invite, $c) . ".plist"; //生成plist文件 $plistContent = $this->iosTem($ipaName, trim($versionRe['version'])); $isWrite = $this->wPlistfile($plistName, $plistContent); if (!$isWrite) { return array('status' => -2, 'error' => 'plist文件生成失败'); } if (file_exists($path . $ipaName)) { @unlink($path . $ipaName); } //生成ipa包 $packName = $path . $ipaName; $headerFile = 'headerFile'; exec("wget --server-response -O {$packName} -o {$headerFile} '{$ipaUrl}'"); // 获取ipa包 $file_size = $this->getContentLengthFromHeaderFile($headerFile); if (file_exists($path . $ipaName) and filesize($path . $ipaName) > 4000000 and filesize($path . $ipaName) < 9000000) { $sql = "UPDATE a_package_log SET status = 1 WHERE uid = '{$invite}' AND channel like '{$channel}%' AND pk_os = 2;"; // 本地包正常 $this->versionModel->query($sql); } else { $sql = "UPDATE a_package_log SET status = -1 WHERE uid = '{$invite}' AND channel like '{$channel}%' AND pk_os = 2;"; // 本地包异常 $this->versionModel->query($sql); } if ($file_size < 4000000 or $file_size > 9000000) { $sql = "UPDATE a_package_log SET status = -2 WHERE uid = '{$invite}' AND channel like '{$channel}%' AND pk_os = 2;"; // 获取包异常 $this->versionModel->query($sql); } curl_short(_DOMAIN_ . "/cron/ipa_all/checkCDN?ipaName={$ipaName}&invite={$invite}&channel={$channel}"); // 异步访问 chackcdn链接, 改变打包状态 // $ipaName = "dfdsf_pack"; if (app()->user->getId() == 1) { echo 'sql : '; var_dump("UPDATE a_package_log SET status = 1 WHERE uid = '{$invite}' AND channel like '{$channel}%' AND pk_os = 2;"); echo '<br>'; echo 'filename : '; var_dump($path . $ipaName); echo '<br>'; echo 'filesize : '; var_dump(filesize($path . $ipaName)); echo '<br>'; echo 'ipaUrl :'; var_dump($ipaUrl); echo '<br>'; echo 'checkCDN :'; var_dump(_DOMAIN_ . "/cron/ipa_all/checkCDN?ipaName={$ipaName}&invite={$invite}&channel={$channel}"); echo '<br>'; echo 'response_header size:'; var_dump($file_size); } //判断远程文件是否已存在 $plistUrl = 'https://www.hongbaosuoping.com/plist/' . $plistName; // how it works if (!file_get_contents($plistUrl)) { return array('status' => -3, 'error' => '无法获取plist文件'); } return array('status' => 1, 'error' => '成功', "url" => $plistUrl); } return array('status' => 0, 'error' => '打包失败'); }