Skip to content

Commit aa3b637

Browse files
authored
Merge pull request #15 from SillyLittleTech/copilot/fix-flean-app-extension-issue
Ensure Safari MV3 background loads and bundle extension resources/icons
2 parents 8df0a29 + 0075eb7 commit aa3b637

69 files changed

Lines changed: 271 additions & 104 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/build-and-release.yml

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,8 +103,10 @@ jobs:
103103
-skipPackagePluginValidation \
104104
SYMROOT=build \
105105
CODE_SIGN_IDENTITY="" \
106-
CODE_SIGNING_REQUIRED=NO \
107-
CODE_SIGN_ENTITLEMENTS=""
106+
CODE_SIGNING_ALLOWED=NO
107+
108+
APP_ENT="Flean/Flean.entitlements"
109+
EXT_ENT="Flean Extension/Flean_Extension.entitlements"
108110
109111
# Find and zip the .app into a fixed location matching the upload step
110112
APP_PATH=$(find build -name "Flean.app" -type d | head -1)
@@ -113,6 +115,17 @@ jobs:
113115
exit 1
114116
fi
115117
118+
EXT_PATH="$APP_PATH/Contents/PlugIns/Flean Extension.appex"
119+
if [ ! -d "$EXT_PATH" ]; then
120+
echo "❌ Extension appex not found at $EXT_PATH"
121+
exit 1
122+
fi
123+
124+
# Ad-hoc sign the extension and host app so Safari recognizes the bundle
125+
codesign --force --options runtime --entitlements "$EXT_ENT" -s - "$EXT_PATH"
126+
codesign --force --options runtime --entitlements "$APP_ENT" -s - "$APP_PATH"
127+
codesign --verify --deep --strict "$APP_PATH"
128+
116129
# Create a zip whose top-level entry is Flean.app
117130
OUT_ZIP="$(pwd)/build/Flean.app.zip"
118131
APP_DIR="$(dirname "$APP_PATH")"

.github/workflows/prerelease.yml

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,15 +68,28 @@ jobs:
6868
-skipPackagePluginValidation \
6969
SYMROOT=build \
7070
CODE_SIGN_IDENTITY="" \
71-
CODE_SIGNING_REQUIRED=NO \
72-
CODE_SIGN_ENTITLEMENTS=""
71+
CODE_SIGNING_ALLOWED=NO
72+
73+
APP_ENT="Flean/Flean.entitlements"
74+
EXT_ENT="Flean Extension/Flean_Extension.entitlements"
7375
7476
# Find and zip the .app
7577
APP_PATH=$(find build -name "Flean.app" -type d | head -1)
7678
if [ -z "$APP_PATH" ]; then
7779
echo "❌ Flean.app not found"
7880
exit 1
7981
fi
82+
83+
EXT_PATH="$APP_PATH/Contents/PlugIns/Flean Extension.appex"
84+
if [ ! -d "$EXT_PATH" ]; then
85+
echo "❌ Extension appex not found at $EXT_PATH"
86+
exit 1
87+
fi
88+
89+
# Ad-hoc sign the extension and host app so Safari recognizes the bundle
90+
codesign --force --options runtime --entitlements "$EXT_ENT" -s - "$EXT_PATH"
91+
codesign --force --options runtime --entitlements "$APP_ENT" -s - "$APP_PATH"
92+
codesign --verify --deep --strict "$APP_PATH"
8093
OUT_ZIP="$(pwd)/build/Flean.app.zip"
8194
APP_DIR="$(dirname "$APP_PATH")"
8295
APP_NAME="$(basename "$APP_PATH")"

ios/Flean.xcodeproj/project.pbxproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@
7777
explicitFolders = (
7878
Resources/_locales,
7979
Resources/images,
80+
Resources/scripts,
8081
);
8182
path = extention;
8283
sourceTree = "<group>";
Lines changed: 152 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,58 +1,176 @@
11
{
2-
"images" : [
2+
"images": [
33
{
4-
"idiom" : "mac",
5-
"scale" : "1x",
6-
"size" : "16x16"
4+
"idiom": "iphone",
5+
"filename": "icon-20@2x.png",
6+
"scale": "2x",
7+
"size": "20x20"
78
},
89
{
9-
"idiom" : "mac",
10-
"scale" : "2x",
11-
"size" : "16x16"
10+
"idiom": "iphone",
11+
"filename": "icon-20@3x.png",
12+
"scale": "3x",
13+
"size": "20x20"
1214
},
1315
{
14-
"idiom" : "mac",
15-
"scale" : "1x",
16-
"size" : "32x32"
16+
"idiom": "iphone",
17+
"filename": "icon-29@2x.png",
18+
"scale": "2x",
19+
"size": "29x29"
1720
},
1821
{
19-
"idiom" : "mac",
20-
"scale" : "2x",
21-
"size" : "32x32"
22+
"idiom": "iphone",
23+
"filename": "icon-29@3x.png",
24+
"scale": "3x",
25+
"size": "29x29"
2226
},
2327
{
24-
"idiom" : "mac",
25-
"scale" : "1x",
26-
"size" : "128x128"
28+
"idiom": "iphone",
29+
"filename": "icon-40@2x.png",
30+
"scale": "2x",
31+
"size": "40x40"
2732
},
2833
{
29-
"idiom" : "mac",
30-
"scale" : "2x",
31-
"size" : "128x128"
34+
"idiom": "iphone",
35+
"filename": "icon-40@3x.png",
36+
"scale": "3x",
37+
"size": "40x40"
3238
},
3339
{
34-
"idiom" : "mac",
35-
"scale" : "1x",
36-
"size" : "256x256"
40+
"idiom": "iphone",
41+
"filename": "icon-60@2x.png",
42+
"scale": "2x",
43+
"size": "60x60"
3744
},
3845
{
39-
"idiom" : "mac",
40-
"scale" : "2x",
41-
"size" : "256x256"
46+
"idiom": "iphone",
47+
"filename": "icon-60@3x.png",
48+
"scale": "3x",
49+
"size": "60x60"
4250
},
4351
{
44-
"idiom" : "mac",
45-
"scale" : "1x",
46-
"size" : "512x512"
52+
"idiom": "ipad",
53+
"filename": "icon-20-ipad.png",
54+
"scale": "1x",
55+
"size": "20x20"
4756
},
4857
{
49-
"idiom" : "mac",
50-
"scale" : "2x",
51-
"size" : "512x512"
58+
"idiom": "ipad",
59+
"filename": "icon-20@2x-ipad.png",
60+
"scale": "2x",
61+
"size": "20x20"
62+
},
63+
{
64+
"idiom": "ipad",
65+
"filename": "icon-29-ipad.png",
66+
"scale": "1x",
67+
"size": "29x29"
68+
},
69+
{
70+
"idiom": "ipad",
71+
"filename": "icon-29@2x-ipad.png",
72+
"scale": "2x",
73+
"size": "29x29"
74+
},
75+
{
76+
"idiom": "ipad",
77+
"filename": "icon-40-ipad.png",
78+
"scale": "1x",
79+
"size": "40x40"
80+
},
81+
{
82+
"idiom": "ipad",
83+
"filename": "icon-40@2x-ipad.png",
84+
"scale": "2x",
85+
"size": "40x40"
86+
},
87+
{
88+
"idiom": "ipad",
89+
"filename": "icon-76.png",
90+
"scale": "1x",
91+
"size": "76x76"
92+
},
93+
{
94+
"idiom": "ipad",
95+
"filename": "icon-76@2x.png",
96+
"scale": "2x",
97+
"size": "76x76"
98+
},
99+
{
100+
"idiom": "ipad",
101+
"filename": "icon-83.5@2x.png",
102+
"scale": "2x",
103+
"size": "83.5x83.5"
104+
},
105+
{
106+
"idiom": "ios-marketing",
107+
"filename": "icon-1024.png",
108+
"scale": "1x",
109+
"size": "1024x1024"
110+
},
111+
{
112+
"idiom": "mac",
113+
"filename": "icon_16.png",
114+
"scale": "1x",
115+
"size": "16x16"
116+
},
117+
{
118+
"idiom": "mac",
119+
"filename": "icon_16@2x.png",
120+
"scale": "2x",
121+
"size": "16x16"
122+
},
123+
{
124+
"idiom": "mac",
125+
"filename": "icon_32.png",
126+
"scale": "1x",
127+
"size": "32x32"
128+
},
129+
{
130+
"idiom": "mac",
131+
"filename": "icon_32@2x.png",
132+
"scale": "2x",
133+
"size": "32x32"
134+
},
135+
{
136+
"idiom": "mac",
137+
"filename": "icon_128.png",
138+
"scale": "1x",
139+
"size": "128x128"
140+
},
141+
{
142+
"idiom": "mac",
143+
"filename": "icon_128@2x.png",
144+
"scale": "2x",
145+
"size": "128x128"
146+
},
147+
{
148+
"idiom": "mac",
149+
"filename": "icon_256.png",
150+
"scale": "1x",
151+
"size": "256x256"
152+
},
153+
{
154+
"idiom": "mac",
155+
"filename": "icon_256@2x.png",
156+
"scale": "2x",
157+
"size": "256x256"
158+
},
159+
{
160+
"idiom": "mac",
161+
"filename": "icon_512.png",
162+
"scale": "1x",
163+
"size": "512x512"
164+
},
165+
{
166+
"idiom": "mac",
167+
"filename": "icon_512@2x.png",
168+
"scale": "2x",
169+
"size": "512x512"
52170
}
53171
],
54-
"info" : {
55-
"author" : "xcode",
56-
"version" : 1
172+
"info": {
173+
"author": "xcode",
174+
"version": 1
57175
}
58176
}
314 KB
1.32 KB
2.69 KB
2.69 KB
4.15 KB
1.9 KB

0 commit comments

Comments
 (0)