当前位置:   article > 正文

利用xcodebuild命令导出ipa包,并签名_xcodebuild命令到处adhoc

xcodebuild命令到处adhoc

最近由于需要接很多渠道,用xcode手动打包太麻烦,就用python写了工具用于导出ipa包,功能比较简单,代码贡献出来。
使用方法:

python ipaExport.py -m /Users/xxxx/AdHoc.mobileprovision -s "iPhone Distribution: xxx.\ \(YV5J8U46A2\)" -t xxxIOS -c "Ad\ hoc"
  • 1

-m 证书文件的路径
-s 对应的签名 已经安装在电脑上的 字符串有空格需要转义
-c 打包类型 ‘Ad\ hoc’是我自己定义用来打包inhouse的,项目有自带的Release和Debug,一般Release的包需要上传到AppStore我是不通过命令打包的,Debug也不太需要,所以默认我就写了Ad hoc,参数如果有空格需要转义一下
-t target类型 一般基本上就是项目名称,看你xcode里面的配置

需要注意的是路径最好不要有空格,我默认将ipa包输出到build文件夹,并且以target+打包类型.ipa!!!

新建一个文件名称为ipaExport.py文件,把下面代码粘贴进去

#! -*- coding: utf8 -*-

import os
import subprocess
import sys
import argparse

# pro_dir is ios xxx.xcodeproj 目录 这是我当前的python文件目录算出来的项目目录 需要手动修改为你的项目的目录 可以写成绝对路径
pro_dir = os.path.abspath(
os.path.join(os.path.dirname(__file__), '../proj.ios'))

# sign 签名名称
# profilePath 证书路径
def build(target,sign,profile,config):
    print 'sign is:'+sign
    print 'profile:'+profile

    print "开始清理!"
    command = "cd %s; xcodebuild -target %s clean "% (pro_dir,target)
    os.system(command)

    print "编译!"
    command = "cd %s;xcodebuild -target %s  -sdk iphoneos -configuration %s" % (pro_dir,target,config)
    os.system(command)

    ipa_out_put = os.path.join(pro_dir,"build/%s_%s.ipa"%(target,config))

        print "打包ipa!输出到 %s" % ipa_out_put

        command = "cd %s;xcrun -sdk iphoneos PackageApplication -v build/%s-iphoneos/%s.app -o '%s' —sign %s  —embed %s" % (pro_dir,config,target,ipa_out_put,sign,profile)
        print command
        os.system(command)

if __name__ == '__main__':
    parser = argparse.ArgumentParser(description='Process args')
    #证书路径
    parser.add_argument('-m', '--profile', help='mobileprovision file path 证书路径 不能为空')
    #签名
    parser.add_argument('-s', '--sign', help='installed sign 电脑上已经安装的签名 不能为空')
    #项目的target
    parser.add_argument('-t', '--target', help='target name 项目的target 不能为空')
    #Release Debug Or AdHoc等 默认为AdHoc
    parser.add_argument('-c','--config',help='target type 默认为 Ad\ hoc')

    args = parser.parse_args()

    if args.profile==None:
        print "请设置-m 证书路径"

    if args.sign==None:
        print "请设置-s 签名 例如:'iPhone Distribution: xxxx. (YV5J8U46A2)'"

    if args.target==None:
        print "请设置-t target"

    if args.config==None:
        args.config = "Ad\ hoc"
        print "没有设置 -c 配置 默认为 Ad\ hoc"

    if args.profile and args.sign and args.target and args.config:
        build(args.target,args.sign,args.profile,args.config)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/314486
推荐阅读
  

闽ICP备14008679号