1.準備工作和注意事項
2.配置填寫
python搭建環境?項目、python腳本文件及plist目錄:
plist文件:
3.生成相關目錄
ios python、4.xcodebuild命令打包
5.上傳svn
建議:
Python 自動化?1.上傳app store還是手動,用熟悉的方式最可靠.
2.要修改python代碼 或者 自行開發 還是學一下基礎先.
3.附上源碼
python excel 自動化。以下是源碼:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
python鍵值對。import os
import copy
import time
import sys
import urllib
import shutil
#使用說明
#本腳本基于Python語言,學習優化的自動化構建打包腳本,目前僅發布SVN上傳,如有其它需要,可自行開發...
#條件準備
#1. 裝有python
#2. 運行python文件
#注意事項
#1.xcworkspace方式打包
#2.需要配置ipa的svn路徑
#3.本文默認打包,上傳SVN文件方式,schemeName+打包時間+.ipa為文件名上傳
#4.schemeNames和configurationName可以在項目根目錄下(xcworkspace所在位置),使用xcodebuild -list查看
#5.python所在plist文件夾中的plist文件一定要有!!!
#開始時間
start = time.time()
#******************需要手動填寫***********************
#版本
jobVersion="1.1.1"
#工作空間
workspaceName="項目名" + ".xcworkspace"
#構建工程
schemeNames={"項目名-Test"} #debug版本[Debug|Release],使用xcodebuild -list查看configuration支持的類型
#編譯版本信息
configurationName="Debug-Test" #debug版本[Debug|Release],使用xcodebuild -list查看configuration支持的類型
#需要打那個版本的ipa包(development/adhoc/enterprise/app-store) plist里 填寫的就是版本證書
plistPath="/plist/development.plist"
#SVN地址
SVN_ADDRESS = '需要上傳到svn地址目錄'
#***************************************************
#python文件所在文件目錄
filePath=sys.path[0]
#配置plist的目錄
plistPath=filePath+plistPath
# 轉換目錄結構--轉到代碼庫所在文件
codePath=os.path.abspath(os.path.join(os.path.dirname(__file__),".."))
os.chdir(codePath+'/項目名/');
#*****************拉取代碼**********************************
os.system('git pull')
print('更新代碼完成...')
#*****************打包**********************************
#獲取當前時間并格式化
dateTime=time.strftime("%Y-%m-%d-%H-%M-%S", time.localtime());
svnPackName=time.strftime("%m%d", time.localtime());
#獲取當前目錄路徑
workspaceDirPath=os.getcwd()
#獲取當前桌面路徑
desktopPath=os.path.join(os.path.expanduser("~"), 'Desktop')
desktopPath2=os.path.expanduser("~/Desktop")
#最后生成基礎目錄
basePath=desktopPath+"/App"+dateTime
#archivePath目錄
archivePath=basePath+"/archive"
if os.path.exists(archivePath)==False:
os.makedirs(archivePath)
#exportPath目錄
exportPath=basePath+"/ipa"
if os.path.exists(exportPath)==False:
os.makedirs(exportPath)
for schemeName in schemeNames:
#BaseCommand
baseCommand=" -workspace "+workspaceName+" -scheme "+schemeName+" -configuration "+configurationName
#清除編譯的app
xcodebuild_clean="xcodebuild clean"+baseCommand
#查看項目全部的targets,schemes和configurations
xcodebuild_list="xcodebuild -list"
#編譯
xcodebuild_build="xcodebuild build"+baseCommand
#archivePath命令
archivePathOption=" -archivePath "+archivePath+"/"+schemeName
#exportPath命令
exportPathOption=" -exportPath "+exportPath+"/"
#指定exportOptionsPlist文件路徑
exportOptionsPlistOption=" -exportOptionsPlist "+plistPath
#編譯并生成.archive包
xcodebuild_archive="xcodebuild archive"+archivePathOption+baseCommand
#.archive包導出ipa包
xcodebuild_exportArchive="xcodebuild -exportArchive"+archivePathOption+".xcarchive"+exportPathOption+exportOptionsPlistOption
# 執行命令
os.system(xcodebuild_clean)
os.system('%s' % xcodebuild_archive)
os.system('%s' % xcodebuild_exportArchive)
# # 重命名文件
ipaNamePath=exportPath+'/'+schemeName+'.ipa'
#新ipa
newIpaName=schemeName+'-'+jobVersion+'-'+dateTime+'.ipa'
newIpaNamePath=exportPath+'/'+newIpaName
os.rename(ipaNamePath, newIpaNamePath)
# print ipaName
# print newIpaName
#***************************************************
#*******************上傳svn********************************
# 判斷今天的倉庫是否創建,沒有就創建
repositoryPath=desktopPath2+'/repository/'+jobVersion+'/development'
if os.path.exists(repositoryPath)==False:
os.makedirs(repositoryPath)
daliyPath=repositoryPath+'/'+svnPackName
print(daliyPath)
if os.path.exists(daliyPath)==False:
# 創建新的文件夾
os.makedirs(daliyPath)
shutil.move(newIpaNamePath, daliyPath)
# 轉到倉庫所在目錄
os.chdir(daliyPath + '/')
# 打開倉庫所在目錄
os.system('cd ' + daliyPath + '/')
# 上傳svn
importFolderSvn = 'svn import -m "New import folder" ' + daliyPath + "/" + newIpaName + " " + SVN_ADDRESS + "/" + svnPackName + "/" + newIpaName
print('daliyPath='+daliyPath)
print('newIpaName='+newIpaName)
print('svnPackName='+svnPackName)
print('newIpaName='+newIpaName)
print('importFolderSvn='+importFolderSvn)
os.system('%s' % importFolderSvn)
print '上傳ipa包'
#***************************************************
#輸出總用時
end = time.time()
print "用時: %f s" % (end - start)
#forend
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态