|
7 | 7 | <a href="itms-services://?action=download-manifest&url=https://raw.githubusercontent.com/xxx/MyPlists/master/manifest_v3.4.plist"> 安装 </a> |
8 | 8 | ``` |
9 | 9 | > 借助了苹果的OTA协议(企业签名或者第三方分发都是采用这种方式) `itms-services://?action=download-manifest&url= ` |
10 | | -> OTA升级什么意思? |
| 10 | +> OTA(Over-the-Air Technology)升级什么意思? |
11 | 11 | > OTA升级对于很多手机爱好者朋友来说,都不会陌生,很多安卓手机或者iPhone手机都支持OTA升级,直白的说,OTA升级就是在线升级手机系统的意思 |
12 | 12 |
|
13 | 13 | #### 搭建本地webServer |
@@ -67,6 +67,7 @@ webServer |
67 | 67 | ``` |
68 | 68 |
|
69 | 69 | [Mac OS原来自带了apache,基本用法总结](https://blog.csdn.net/seafishyls/article/details/44546809) |
| 70 | +[mac os下的Apache配置 macOS Sierra 10.12](https://www.jianshu.com/p/f56815569234) |
70 | 71 |
|
71 | 72 | #### 准备好ipa包和plist文件 |
72 | 73 | 先上图,再解释 |
@@ -188,5 +189,105 @@ webServer |
188 | 189 | </plist> |
189 | 190 |
|
190 | 191 | ``` |
| 192 | +* 部署脚本 |
| 193 | + |
| 194 | +```shell |
| 195 | +#!/bin/bash |
| 196 | +echo "================================================================" |
| 197 | +echo "请确保app.ipa已在当前目录下" |
| 198 | +echo "注意⚠️: 一次只能部署一种环境,请不要放多个ipa到当前目录下" |
| 199 | +echo "================================================================" |
| 200 | +release_version=`/usr/libexec/PlistBuddy -c 'Print :items:0:metadata:bundle-version' ./manifest.plist` |
| 201 | +debug_version=`/usr/libexec/PlistBuddy -c 'Print :items:0:metadata:bundle-version' ./manifest_test.plist` |
| 202 | +release_bundleId=`/usr/libexec/PlistBuddy -c 'Print :items:0:metadata:bundle-identifier' ./manifest.plist` |
| 203 | +debug_bundleId=`/usr/libexec/PlistBuddy -c 'Print :items:0:metadata:bundle-identifier' ./manifest_test.plist` |
| 204 | + |
| 205 | +if [ ! -f "./app.ipa" ]; then |
| 206 | + echo "当前目录下未检测到app.ipa文件" |
| 207 | + exit 1 |
| 208 | +fi |
| 209 | + |
| 210 | +read -p "部署Release环境(y/n): " env |
| 211 | +if [[ -n "$env" ]]; then |
| 212 | + if [[ "$env"="y" ]]; then |
| 213 | + echo "******************************" |
| 214 | + echo "已选择Release环境" |
| 215 | + echo "当前release版本为: $release_version" |
| 216 | + echo "当前release bundleId为: $release_bundleId" |
| 217 | + echo "******************************" |
| 218 | + else |
| 219 | + echo "******************************" |
| 220 | + echo "已选择Debug环境" |
| 221 | + echo "当前debug版本为: $debug_version" |
| 222 | + echo "当前debug bundleId为: $debug_bundleId" |
| 223 | + echo "******************************" |
| 224 | + fi |
| 225 | +else |
| 226 | + echo "******************************" |
| 227 | + echo "默认为Release环境" |
| 228 | + echo "当前release版本为: $release_version" |
| 229 | + echo "当前release bundleId为: $release_bundleId" |
| 230 | + echo "******************************" |
| 231 | + env="y" |
| 232 | +fi |
| 233 | + |
| 234 | +read -p "版本号(版本号为必填项): " version |
| 235 | +if [[ -n "$version" ]]; then |
| 236 | + echo $version |
| 237 | +else |
| 238 | + if [[ "$env" = "y" ]]; then |
| 239 | + version=$release_version |
| 240 | + else |
| 241 | + version=$debug_version |
| 242 | + fi |
| 243 | +fi |
| 244 | + |
| 245 | +read -p "应用的BundleId(不填写则默认不修改): " bundleId |
| 246 | +if [[ -n "$bundleId" ]]; then |
| 247 | + echo "${bundleId}" |
| 248 | +else |
| 249 | + if [[ "$env" = "y" ]]; then |
| 250 | + bundleId=$release_bundleId |
| 251 | + else |
| 252 | + bundleId=$debug_bundleId |
| 253 | + fi |
| 254 | +fi |
| 255 | + |
| 256 | +read -p "部署版本描述信息(需要加双引号字符串格式): " commit_message |
| 257 | +if [[ -n "$commit_message" ]]; then |
| 258 | + echo "$commit_message" |
| 259 | +else |
| 260 | + commit_message="🚀update~" |
| 261 | +fi |
| 262 | + |
| 263 | + |
| 264 | +if [[ "$env" = "y" ]]; then |
| 265 | + /usr/libexec/PlistBuddy -c 'Set :items:0:metadata:bundle-version string $version' ./manifest.plist |
| 266 | + /usr/libexec/PlistBuddy -c 'Set :items:0:metadata:bundle-identifier string $bundleId' ./manifest.plist |
| 267 | + sudo cp -f ./*ipa /Library/WebServer/Documents/app/ipa/release/app.ipa |
| 268 | +else |
| 269 | + /usr/libexec/PlistBuddy -c 'Set :items:0:metadata:bundle-version string $version' ./manifest_test.plist |
| 270 | + /usr/libexec/PlistBuddy -c 'Set :items:0:metadata:bundle-identifier string $bundleId' ./manifest_test.plist |
| 271 | + sudo cp -f ./*ipa /Library/WebServer/Documents/app/ipa/debug/app.ipa |
| 272 | +fi |
| 273 | + |
| 274 | +echo "🎉🎉🎉 部署成功!!!" |
| 275 | +echo "确保手机连上ZQun-5G的WiFi" |
| 276 | +echo "手机Safari浏览器打开 http://192.168.1.166/app/index.html 即可食用~" |
| 277 | + |
| 278 | +open /Library/WebServer/Documents/app/ipa |
| 279 | + |
| 280 | +rm -rf *.ipa #移除记录 |
| 281 | + |
| 282 | +echo "🚀🚀🚀提交代码" |
| 283 | + |
| 284 | +git add . |
| 285 | +git commit -am "$commit_message" |
| 286 | +git push origin master |
| 287 | + |
| 288 | +``` |
| 289 | + |
| 290 | + |
| 291 | +[plist和部署脚本托管在github仓库](https://github.com/YGC-byte/MyPlists.git) |
191 | 292 |
|
192 | 293 | 以上~ |
0 commit comments