iOS分发平台搭建

1、jenkins配置(准备好要上传oss的文件分别为:二维码图片文件.png、iOS包.ipa、plist文件.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>https://XXX域名/ios/package/16.ipa</string>
                </dict>
                <dict>
                    <key>kind</key>
                    <string>display-image</string>
                    <key>url</key>
                    <string>https://XXX域名/ios/package/1.png</string>
                </dict>
                <dict>
                    <key>kind</key>
                    <string>full-size-image</string>
                    <key>url</key>
                    <string>https://XXX域名/ios/package/2.png</string>
                </dict>
            </array>
            <key>metadata</key>
            <dict>
                <key>bundle-identifier</key>
                <string>com.chamet.test</string>
                <key>bundle-version</key>
                <string>1.0.3</string>
                <key>kind</key>
                <string>software</string>
                <key>title</key>
                <string>MateMet</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

每次只需要修改16.ipa包信息

修改plist文件名
mv *.plist $BUILD_ID.plist

修改plist文件内容
sed -i "s|<string>https://XXX域名/ios/package/.*\.ipa</string>|<string>https://XXX域名/ios/package/$BUILD_ID.ipa</string>|g" $BUILD_ID.plist

2、生成二维码图片文件

登录后复制
脚本执行命令
python /data/scripts/uploadToOss.py "ios/package/$BUILD_ID.ipa" Vamar.ipa


脚本内容:
# -*- coding: utf-8 -*-

import os
import shutil
import sys
import oss2
import qrcode

if len(sys.argv) < 2:  
    print ('uploadToOss.py oss-save-path  local-upload-file')  
    sys.exit()
print ("oss-save-path:%s" % sys.argv[1])
print ("local-upload-file:%s" % sys.argv[2])

def GetFileNameAndExt(filename):
 import os
 (filepath,tempfilename) = os.path.split(filename);
 (shotname,extension) = os.path.splitext(tempfilename);
 return shotname,extension

access_key_id = os.getenv('OSS_TEST_ACCESS_KEY_ID', '阿里云oss-KEY_ID')
access_key_secret = os.getenv('OSS_TEST_ACCESS_KEY_SECRET', '阿里云oss-KEY_SECRET')
bucket_name = os.getenv('OSS_TEST_BUCKET', 'BUCKET-名')
endpoint = os.getenv('OSS_TEST_ENDPOINT', 'ossURL地址.aliyuncs.com')
for param in (access_key_id, access_key_secret, bucket_name, endpoint):
    assert '<' not in param, '请设置参数:' + param
bucket = oss2.Bucket(oss2.Auth(access_key_id, access_key_secret), endpoint, bucket_name)
bucket.put_object_from_file(sys.argv[1],sys.argv[2])


apkurl="itms-services://?action=download-manifest&url=https://XXX域名/%s" % sys.argv[1]
print ("如需打渠道包,将此链接输入到打渠道包的jenkins中:%s" % apkurl)
pngurl=apkurl.replace('.ipa','.plist')
print (pngurl)
pngName=GetFileNameAndExt(pngurl)[0]
img=qrcode.make(pngurl)
img.save( "./%s.png" % pngName )


bucket.put_object_from_file(sys.argv[1].replace('.ipa','.png'),"./%s.png" % pngName)
bucket.put_object_from_file(sys.argv[1].replace('.ipa','.plist'),"./%s.plist" % pngName)

3、图片发送钉钉群

登录后复制
python /data/scripts/send_dingrobot_liaoyu.py 钉钉机器人access_token 构建ios包 https://XXX域名/ios/package/$BUILD_ID.png test


脚本内容:
#!/usr/bin/python
#coding=utf-8
import sys
import time
import requests
import json
import urllib

access_token = sys.argv[1]
title = sys.argv[2]
#git_branch = sys.argv[3]
#build_url = sys.argv[4]
apk_url = sys.argv[3]
apk_env = sys.argv[4]

if apk_env == "test":
    env = "测试环境"
elif apk_env == "product":
    env = "线上环境"
elif apk_env == "live":
    env = "live版本"

md_title = "#### Client:%s \n" %(title)
#md_git_branch = "##### Git分支:%s \n" %(git_branch)
#md_build_url = "##### 构建地址:%s \n" %(build_url)
md_apk_env = "##### 构建环境:%s \n" % (env)
md_apk_url = "iOS包下载二维码:![screenshot](%s)" %(apk_url) 

#msg = "Client:{title}\nGit分支:{git_branch}\n构建地址:{build_url}\napk二维码:![screenshot]({apk_url})".format(title=title,git_branch=git_branch,build_url=build_url,apk_url=apk_url)
def Robot_Send(access_token, md_title, md_apk_url, md_apk_env):
    url = "https://oapi.dingtalk.com/robot/send?access_token=%s" %(access_token)
    headers = {
        "Content-Type": "application/json ;charset=utf-8 "
    }
    data = {
        "msgtype": "markdown",
	"markdown": {
        "title": md_title,
	  "text": md_title + md_apk_env + md_apk_url
	},
	"isAtAll": 0
    }
    format_data = json.dumps(data)
    res = requests.post(url, data=format_data, headers=headers)
    return res.text

send_statu = str(Robot_Send(access_token, md_title, md_apk_url, md_apk_env))

print (send_statu)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值