-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
56 lines (47 loc) · 1.21 KB
/
Copy pathMakefile
File metadata and controls
56 lines (47 loc) · 1.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
SCHEME=roz
CONFIG=Release
TARGET=roz
ENTITLEMENTS=roz.entitlements
DERIVED_DATA=build
BUILD_PATH=$(DERIVED_DATA)/Build/Products/$(CONFIG)
APP_BINARY=$(BUILD_PATH)/$(TARGET)
SIGNED_BINARY=release/$(TARGET)
PKGROOT=pkgroot
PKGINSTALLPATH=/usr/local/bin
PKGID=gov.ca.calstrs.roz
PKGNAME=roz.pkg
all: clean build sign
clean:
rm -rf $(DERIVED_DATA) release $(PKGROOT) $(PKGNAME)
mkdir -p release
build:
xcodebuild \
-scheme $(SCHEME) \
-configuration $(CONFIG) \
-derivedDataPath $(DERIVED_DATA) \
CODE_SIGN_ENTITLEMENTS="$(ENTITLEMENTS)" \
CODE_SIGN_IDENTITY="-" \
ENABLE_HARDENED_RUNTIME=YES \
OTHER_CODE_SIGN_FLAGS="--timestamp"
sign:
codesign --force --options runtime \
--entitlements $(ENTITLEMENTS) \
--sign - \
-o runtime \
$(APP_BINARY)
cp $(APP_BINARY) $(SIGNED_BINARY)
@echo "Signed and copied to $(SIGNED_BINARY)"
pkg: all
mkdir -p $(PKGROOT)$(PKGINSTALLPATH)
cp $(SIGNED_BINARY) $(PKGROOT)$(PKGINSTALLPATH)/$(TARGET)
chmod +x $(PKGROOT)$(PKGINSTALLPATH)/$(TARGET)
pkgbuild \
--root $(PKGROOT) \
--identifier $(PKGID) \
--version 1.0.0 \
--install-location / \
$(PKGNAME)
@echo "Created installer: $(PKGNAME)"
run: all
sudo ./$(SIGNED_BINARY)
.PHONY: all clean build sign run pkg