python打包ios_用python编写ios工程自动编译、打包ipa等脚本

代码管理我用的是Git;

工程clone如下:

需要import

importos

importtime

importjson

import commands

import smtplib

#需要的路径

project_path ="https://JackMeng@bitbucket.org/xxx/goccia-ios-1.x.git"

target_parth ="/Users/gbry/Desktop/20140804"

targerIPA_parth ="/Users/gbry/Desktop"

#更改版本号

newBundleVersion = "813"

newBundleVersionString = "1.5.8"

infoPlistFilePath = '%s/Goccia/Goccia-Info.plist'%target_parth

app_infoplist_path ='%s/build/Release-iphoneos/Goccia.app'%target_parth

#fir相关

fir_domain="http://fir.im"

fir_lookup_url="http://fir.im/api/v2/app/info"

upDate_mes ="http://fir.im/api/v2/app"

fir_appid ="com.gwearables.Goccia"

fir_token ="iypreC5dd39c58jfamMtUbbbB608J6eHqAYiyggQ"

def gitClone():

os.system ('git clone %s %s'%(project_path,target_parth))

return

https://JackMeng@bitbucket.org/xxx/goccia.git是git服务器路径,不必care;~/desktop/20140804是目标路径,放哪儿随你

checkout如下:

首先:进入工程存放路径:cd /Users/gbry/Desktop/20140804

def gitCheckout():

os.system ('cd %s;git fetch && git checkout dev'%target_parth)

return

#更改版本号相关

def modifyBundleVersion():

os.system('/usr/libexec/PlistBuddy -c "Set:CFBundleShortVersionString %s" %s'%(newBundleVersionString,infoPlistFilePath))

os.system('/usr/libexec/PlistBuddy -c "Set:CFBundleVersion %s" %s'%(newBundleVersion,infoPlistFilePath))

return

编译

def build_debug():

os.system ('xcodebuild -version')

os.system ('xcodebuild -showsdks')

os.system ('xcodebuild -list')

os.system ('cd %s;xcodebuild -sdk iphoneos7.1'%target_parth)

return

打包ipa:

def build_ipa():

global ipa_filename

ipa_filename = time.strftime('Goccia_%Y-%m-%d-%H-%M-%S.ipa',time.localtime(time.time()))

os.system ('xcrun -sdk iphoneos PackageApplication -v %s -o %s/%s'%(app_infoplist_path,targerIPA_parth,ipa_filename))

return

#上传ipa文件到fir

def upload_ipa():

os.system ('cd %s'%app_infoplist_path)

os.system ('/usr/libexec/PlistBuddy -c "print CFBundleShortVersionString" %s/Info.plist'%app_infoplist_path)

os.system ('/usr/libexec/PlistBuddy -c "print CFBundleVersion" %s/Info.plist'%app_infoplist_path)

bundleIdentifiertmp = os.popen ('/usr/libexec/PlistBuddy -c "print CFBundleIdentifier" %s/Info.plist'%app_infoplist_path)

projectNameTmp = os.popen ('/usr/libexec/PlistBuddy -c "print CFBundleName" %s/Info.plist'%app_infoplist_path)

os.system ('/usr/libexec/PlistBuddy -c "print CFBundleDisplayName" %s/Info.plist'%app_infoplist_path)

bundleIdentifier = bundleIdentifiertmp.read()

projectName = projectNameTmp.read()

result = os.popen('curl "%s/%s?token=%s"'%(fir_lookup_url,fir_appid,fir_token))

str = result.read()

pkg_key = json.loads(str)["bundle"]["pkg"]["key"]

pkg_token = json.loads(str)["bundle"]["pkg"]["token"]

pkg_url = json.loads(str)["bundle"]["pkg"]["url"]

id = json.loads(str)["id"]

short = json.loads(str)["short"]

print 'curl "%s/%s?token=%s"\n'%(fir_lookup_url,fir_appid,fir_token)

print'str %s\n'%str

print'pkg_key %s\n'%pkg_key

print'pkg_token %s\n'%pkg_token

print'pkg_url %s\n'%pkg_url

print'id %s\n'%id

print 'bundleIdentifier %s'%bundleIdentifier

print'short %s\n'%short

print 'ipa_filename %s'%ipa_filename

upload_url = 'curl -F file=@%s/%s -F "key=%s" -F "token=%s" %s'%(targerIPA_parth,ipa_filename,pkg_key,pkg_token,pkg_url)

print"upload_url:{%s}\n"%upload_url

os.system (upload_url)

return

#发送邮件通知

from email.mime.text import MIMEText

def send_mail():

mailto_list=["xxx@163.com","xxx@g-wearables.com"]

mail_host="smtp.exmail.qq.com"

mail_user="xxx@g-wearables.com"

mail_pass="密码"

mail_postfix="g-wearables.com"

me=mail_user+""

#    html = MIMEText("Hi all:\n\n    The app is updated recently.Use the safari browser on iOS device to download the app.Here is the URL: goccia\n\nThis email is sent by the automantic python which is created by jackMeng, so do not reply this email.\n\nThanks!",_charset='utf-8')

html = """

Hi!

Here is the http://fir.im/goccia you wanted.

"""

global ipa_filename

html += ipa_filename

html += """

"""

msg = MIMEText(html,'html')

msg['Subject'] = "Test"

msg['From'] = me

msg['To'] = ";".join(mailto_list)

s = smtplib.SMTP()

s.connect(mail_host)

s.login(mail_user,mail_pass)

s.sendmail(me, mailto_list, msg.as_string())

s.close()

return

#调用

def main():

gitClone()

gitCheckout()

modifyBundleVersion()

build_debug()

build_ipa()

upload_ipa()

send_mail()

return;

main()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值