大白话:Unlicense 许可证——你用、改、卖,换命名,你开心就好!
##### ”社区的核心精神“
——如果每份公开的代码都要附加一堆条条框框,劝退很多人主动分享。
——“代码能用、能被改进” 比 “内容归属” 重要得多。
🔴 遵循 Unlicense 许可证
🟢 遵循 早期黑客文化 是"无限制"的
🔵 早期 UNIX 是"无限制"的
工作流
name: Build IPA
on:
push:
branches: [ "main" ]
workflow_dispatch:
jobs:
build:
runs-on: macos-15
steps:
- uses: actions/checkout@v3
- name: Compile
run: make
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: APP
path: APP.ipa
make文件
BASEDIR = $(shell pwd)
BUILD_DIR = $(BASEDIR)/build
INSTALL_DIR = $(BUILD_DIR)/install
PROJECT = $(BASEDIR)/APP.xcodeproj
SCHEME = APP
CONFIGURATION = Release
SDK = iphoneos
DERIVED_DATA_PATH = $(BUILD_DIR)
all: ipa
依赖关系
ipa: $(PROJECT)
mkdir -p ./build
xcodebuild -jobs 8 -project $(PROJECT) -scheme $(SCHEME) -configuration $(CONFIGURATION) -sdk $(SDK) -derivedDataPath $(DERIVED_DATA_PATH) CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO CODE_SIGNING_ALLOWED=NO ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES=NO DSTROOT=$(INSTALL_DIR)
rm -rf ./build/APP.ipa
rm -rf ./build/Payload
mkdir -p ./build/Payload
cp -rv ./build/Build/Products/Release-iphoneos/APP.app ./build/Payload
cd ./build && zip -r APP.ipa Payload
mv ./build/APP.ipa ./
强制重新构建
force: clean ipa
clean:
rm -rf ./build
rm -rf ./APP.ipa
.PHONY: all ipa clean force
本地编译 APP.ipa 方法
终端: cd APP这文件夹
终端: make
改了 ipatool-majd/sap_lib(Go 认证库)后
先重建 framework 再打包(Apple 按 TLS 指纹风控:Go 指纹免 2FA,认证必须在 Go runtime 内发出)
make sap && make
build_sap_signer.sh:sap_lib → c-archive → dylib → 刷新APP/Frameworks/SAPSigner.xcframework各 slice。
xcframework 已提交在仓库内,GitHub Actions(make)不依赖本机 go;仅本地改 Go 代码时需要make sap。