iOS利用企业证书测试打包时暂时屏蔽掉ApplePay

作者: shaneZhang 分类: ios技术 发布时间: 2017-07-03 15:53

我们再给测试打包的时候,有时候测试设备多于100台设备,这个时候我们要打企业证书的包,因为企业证书中不能使用ApplePay相关的功能,所以会导致编译出错。
在这里给出一个脚本可以暂时关掉ApplePay的一些配置,保证编译能正常通过。将下面代码保存为removeApplePay.py,配置jenkins每次打包的时候执行一下该脚本即可。
另外,企业证书打包需要不同的BundleID,在Build Setting里面的Product Bundle Identifier里面设置即可。如下图是租车的bundleID配置:
2017-07-03 15.51.48


#!/usr/bin/python
# -*- coding: UTF-8 -*-
fileContent = '';
f = open('zuche.xcodeproj/project.pbxproj')
file = f.readlines()
lineNumbers = 0
hasreplaced = False
for item in file:
    lineNumbers = lineNumbers + 1
    if hasreplaced == True:
        item = item.replace("= 1", "= 0");
        print '第' + str(lineNumbers) + '行'+ '替换后的字符为:' + item

    if  'com.apple.ApplePay' in item:
        print '找到一个com.apple.ApplePay,所在行数为:' + str(lineNumbers)
        hasreplaced = True;
    else:
        if 'com.apple.Wallet' in item:
            print '找到一个com.apple.Wallet,所在行数为:' + str(lineNumbers)
            hasreplaced = True;
        else:
            hasreplaced = False;

    if item.find("PassKit") == -1:
        fileContent += item
    else:
        print '找到了一个PassKit,所在的行数为' + str(lineNumbers)
f.close()
#  写入文件
fo = open("zuche.xcodeproj/project.pbxproj", "wb")
fo.write(fileContent);
# 关闭打开的文件
fo.close()
#################华丽丽的分割线,工程文件解决完了,解决另外一个文件########################
fileContent = '';
f = open('zuche.entitlements')
file = f.readlines()
lineNumbers = 0
removeLineArray = []
for item in file:
    lineNumbers = lineNumbers + 1
    if 'com.apple.developer.in-app-payments' in item:
        removeLineArray.append(lineNumbers);
        removeLineArray.append(lineNumbers + 1)
        removeLineArray.append(lineNumbers + 2)
        removeLineArray.append(lineNumbers + 3)
    if 'com.apple.developer.pass-type-identifiers' in item:
        removeLineArray.append(lineNumbers);
        removeLineArray.append(lineNumbers + 1)
        removeLineArray.append(lineNumbers + 2)
        removeLineArray.append(lineNumbers + 3)
print 'plist中要移除的行数如下:'
print removeLineArray
# 再一次遍历文件所有行数替换要去除的行数
lineNumbers = 0
for item in file:
    lineNumbers = lineNumbers + 1
    if lineNumbers in removeLineArray:
        print '改行是要移除的行,行数为:' + str(lineNumbers)
    else:
        fileContent += item
f.close()
#  写入文件
fo = open("zuche.entitlements", "wb")
fo.write(fileContent);
# 关闭打开的文件
fo.close()

如果觉得我的文章对您有用,请随意打赏。如果有其他问题请联系博主QQ(909491009)或者下方留言!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注