build-ipa/max/build.py
2025-12-11 11:25:12 +08:00

117 lines
4.3 KiB
Python

import subprocess
import json
import sys
import os
def build(ad_key, ad_ids, app_display_name,app_bundle_id,app_version,app_icon):
cmd = """
rm -rfv build
mkdir build
cp -rfv template/playbtest ./build/
"""
subprocess.call(cmd, shell=True)
# 创建编译目录复制模版到build目录
print("--------------------")
# 读取配置
### 复制icon
cmd = f"""
cp -fv {app_icon} ./build/playbtest/playbtest/Assets.xcassets/AppIcon.appiconset/1024x1024.png
"""
subprocess.call(cmd, shell=True)
## 修改ad信息
print("修改ad信息")
code_path = './build/playbtest/playbtest/playB/bbbAdManager.swift'
with open(code_path, 'r') as f:
code = f.read()
code = code.replace("{adKey}", ad_key)
code = code.replace("{allAdIds}", '"' + "\",\"".join(ad_ids) + '"')
with open(code_path, 'w') as f:
f.write(code)
print("修改项目信息")
prj_path = "./build/playbtest/playbtest.xcodeproj/project.pbxproj"
with open(prj_path, 'r') as f:
code = f.read()
code = code.replace("{DisplayName}", app_display_name)
code = code.replace("{BundleId}", app_bundle_id)
code = code.replace("{Version}", app_version)
with open(prj_path, 'w') as f:
f.write(code)
print("\n开始编译\n")
cmd = """
cd ./build/playbtest
pod install --repo-update
xcodebuild clean build -workspace playbtest.xcworkspace -configuration Release -scheme playbtest -derivedDataPath "../Target" -destination "platform=iOS,id=00008150-001114363E7A401C"
cd ../../
"""
subprocess.call(cmd, shell=True)
print("\n开始打包\n")
# codesign --entitlements ./template/Filza.entitlements -f -s "iPhone Distribution: Shumei Luo (T23C6PFSKY)" ./build/ipas/playbtest.app
# find "./build/ipas/playbtest.app" -name "*.framework" -exec codesign -f -s "iPhone Distribution: Shumei Luo (T23C6PFSKY)" {} \;
# find "./build/ipas/playbtest.app" -name "*.dylib" -exec codesign -f -s "iPhone Distribution: Shumei Luo (T23C6PFSKY)" {} \;
# cp ./template/embedded.mobileprovision ./build/ipas/playbtest.app/embedded.mobileprovision
# codesign --entitlements ./template/Filza.entitlements -f -s "iPhone Distribution: Shumei Luo (T23C6PFSKY)" ./build/ipas/playbtest.app
cmd = """
mkdir ./build/ipas
cp -rf ./build/Target/Build/Products/Release-iphoneos/playbtest.app ./build/ipas/
find "./build/ipas/playbtest.app" -name "*.framework" -exec codesign -f -s "Apple Distribution: YX C (3AJQST798X)" {} \;
find "./build/ipas/playbtest.app" -name "*.dylib" -exec codesign -f -s "Apple Distribution: YX C (3AJQST798X)" {} \;
cp ./template/embedded.mobileprovision ./build/ipas/playbtest.app/embedded.mobileprovision
echo "codesign"
codesign --entitlements ./template/Filza.entitlements -f -s "Apple Distribution: YX C (3AJQST798X)" ./build/ipas/playbtest.app
mkdir ./build/ipas/Payload
mv ./build/ipas/playbtest.app ./build/ipas/Payload
cd ./build/ipas
zip -r playb-max.ipa Payload/
"""
subprocess.call(cmd, shell=True)
if __name__ == '__main__':
app_icon = "/Users/mac/workspaces/projects/ios/lux-ipas/SpeedyColor/appicon.png"
if len(sys.argv) < 2:
ad_key = "Dd37BrtbLDlaeiDhxVzaDbsI67Mc1h5lAGIinzo4v2IbkpufdtVmT5Tag9O3aGexzkS4txEPigaEexktewANIk"
ad_ids = ["7468dbe129ab2afe","7b61678bf643a84a","c6b7477edc2aff7e","28fd7967e71c9203"]
app_display_name = "TimeCompass:Zones"
app_bundle_id = "com.timeCompass.timeCompassZones"
app_version = "1.1"
build(ad_key, ad_ids, app_display_name, app_bundle_id, app_version, app_icon)
else:
json_path = sys.argv[1]
with open(json_path, 'r') as f:
config = json.loads(f.read())
print(config)
ad_key = config["sdk_key"]
ad_ids = config["ad_ids"]
app_display_name = config["app_name"]
app_bundle_id = config["app_pkg_name"]
app_version = config["app_ver"]
app_icon_tmp:str = config["app_icon"]
if not app_icon_tmp is None and app_icon_tmp.strip() != '':
app_icon = os.path.join(os.path.dirname(json_path), app_icon_tmp)
build(ad_key, ad_ids, app_display_name, app_bundle_id, app_version, app_icon)