——如果每份公开的代码都要附加一堆条条框框,劝退很多人主动分享。
——“代码能用、能被改进” 比 “内容归属” 重要得多。🔴 遵循 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.ipaBASEDIR = $(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
