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