Compare commits
827 commits
v18.23.3-2
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bb71f4bfd6 | ||
|
|
130ee40335 | ||
|
|
791376c8f8 | ||
|
|
96f960132a | ||
|
|
32b0961b74 | ||
|
|
227714a4f7 | ||
|
|
13a4642894 | ||
|
|
3afdd8a16e | ||
|
|
aa8c4018f7 | ||
|
|
ed2efc7876 | ||
|
|
dd8495b40e | ||
|
|
98058daa0f | ||
|
|
e4082c491e | ||
|
|
03c5b12a3b | ||
|
|
5fbb9ebada | ||
|
|
df888c2b55 | ||
|
|
23fe341199 | ||
|
|
111ee9fb75 | ||
|
|
04b91e6502 | ||
|
|
39807ec54d | ||
|
|
730140360b | ||
|
|
6696128300 | ||
|
|
1c23b5cb0e | ||
|
|
8b1eb37b13 | ||
|
|
8135fc4e0f | ||
|
|
abe20ade53 | ||
|
|
1d7c7c9b22 | ||
|
|
3e5f3bbe85 | ||
|
|
d52a485d61 | ||
|
|
3d54ed60ef | ||
|
|
83f5cfdc01 | ||
|
|
268d31de36 | ||
|
|
6a50764aa9 | ||
|
|
9f80f6d386 | ||
|
|
192010ed09 | ||
|
|
7f254511c9 | ||
|
|
e1d0560cf2 | ||
|
|
5eb16b09b2 | ||
|
|
376191c3a4 | ||
|
|
361e62aad3 | ||
|
|
c2f2a1f9eb | ||
|
|
3939a29d0b | ||
|
|
c82171f6e4 | ||
|
|
1de1ccb1ae | ||
|
|
827ff03bfb | ||
|
|
ebf3edcc49 | ||
|
|
55494e2e91 | ||
|
|
7674805f75 | ||
|
|
5b554ecc0a | ||
|
|
d6c995b1be | ||
|
|
df0be8c66e | ||
|
|
9d62ce75ce | ||
|
|
e66f68ebc6 | ||
|
|
c73cd63db4 | ||
|
|
d4f8a41ff2 | ||
|
|
861a9fd30b | ||
|
|
a3ac8e9735 | ||
|
|
810aca2f16 | ||
|
|
2134ae02d2 | ||
|
|
d9a9ef5563 | ||
|
|
0d87774cd7 | ||
|
|
108deb8d6b | ||
|
|
197f31edf4 | ||
|
|
b5a45c15ac | ||
|
|
4a92378939 | ||
|
|
f17bb793d4 | ||
|
|
64bd324ec2 | ||
|
|
5fb849297a | ||
|
|
09721d4b3a | ||
|
|
a46b3b4e20 | ||
|
|
5741d7c900 | ||
|
|
969efaaf4d | ||
|
|
6996c0ed66 | ||
|
|
5095267b4c | ||
|
|
53e42e1dd4 | ||
|
|
9b83103e92 | ||
|
|
963b9d5fd3 | ||
|
|
573c2d2f43 | ||
|
|
268568b106 | ||
|
|
235e2966bc | ||
|
|
8118240125 | ||
|
|
d4add482d7 | ||
|
|
6aa1f62140 | ||
|
|
c82b31d181 | ||
|
|
fa922a1acd | ||
|
|
aa5300f54f | ||
|
|
2097308a83 | ||
|
|
3795d543ad | ||
|
|
7083d30d9c | ||
|
|
a8c21a202a | ||
|
|
cba079cefa | ||
|
|
7d75eac440 | ||
|
|
6e9ec38c4a | ||
|
|
312f84eb78 | ||
|
|
525f10dcda | ||
|
|
2e6f678f34 | ||
|
|
beeb9eb19f | ||
|
|
0d72c03167 | ||
|
|
8eed3ce8bc | ||
|
|
3f24f6440f | ||
|
|
c0a2ec26ed | ||
|
|
7797875a87 | ||
|
|
4f890f4e0d | ||
|
|
2ece340746 | ||
|
|
ca84635cf4 | ||
|
|
5066716f7f | ||
|
|
bed87298f6 | ||
|
|
87d7b576dd | ||
|
|
f652976a53 | ||
|
|
44d6ffe781 | ||
|
|
023fafae15 | ||
|
|
4c5e2ee0e8 | ||
|
|
de89f7aca8 | ||
|
|
36f9da844b | ||
|
|
e63bc374cf | ||
|
|
067ad5a373 | ||
|
|
6e8bbcb49e | ||
|
|
e21e026c30 | ||
|
|
1647358a9e | ||
|
|
feaaa07e9e | ||
|
|
f434239419 | ||
|
|
e62699749d | ||
|
|
4602b74e6f | ||
|
|
6854f91c1e | ||
|
|
b081d5b52e | ||
|
|
8ed3d97d2d | ||
|
|
e92ada8427 | ||
|
|
8f578bb741 | ||
|
|
2d82e0b532 | ||
|
|
b963c807bb | ||
|
|
10882e5d61 | ||
|
|
4ed8e94880 | ||
|
|
b588b7f6d0 | ||
|
|
9aa33a676d | ||
|
|
76f48a2700 | ||
|
|
45b7cd948e | ||
|
|
4c24c0c336 | ||
|
|
dd88efc631 | ||
|
|
e067e8dec5 | ||
|
|
6e609d56e7 | ||
|
|
11faee3f1e | ||
|
|
82e4f21d24 | ||
|
|
916bcf33ff | ||
|
|
9d0fb16075 | ||
|
|
21df218f2f | ||
|
|
f384a00e04 | ||
|
|
10a536880b | ||
|
|
08c263fdf0 | ||
|
|
818005d73c | ||
|
|
1a9758770d | ||
|
|
f64aab1b58 | ||
|
|
762cd8f618 | ||
|
|
ba13d1b987 | ||
|
|
753d690b78 | ||
|
|
c9875ec8b7 | ||
|
|
11a3e75b0d | ||
|
|
794fb561c9 | ||
|
|
4f2b55a897 | ||
|
|
948ea5ff29 | ||
|
|
37582ecbf8 | ||
|
|
64c712d630 | ||
|
|
91290efdfe | ||
|
|
f2e7c234eb | ||
|
|
e7523dc08d | ||
|
|
09ddc42e32 | ||
|
|
d4679b8414 | ||
|
|
df3d09e81d | ||
|
|
d731dbddec | ||
|
|
00bb15a868 | ||
|
|
8a717e763a | ||
|
|
47562c543b | ||
|
|
d27150b11d | ||
|
|
46d6b163b9 | ||
|
|
cd63b80b77 | ||
|
|
f6afc111e6 | ||
|
|
bdc3b68954 | ||
|
|
c947854b44 | ||
|
|
585a38d2c2 | ||
|
|
3b187cfa01 | ||
|
|
f08e836f02 | ||
|
|
8f060b6fc9 | ||
|
|
2802e0102d | ||
|
|
64793e4d96 | ||
|
|
8a1fa0cac4 | ||
|
|
c43ae5fb50 | ||
|
|
7a2f0b013d | ||
|
|
ce97bb8667 | ||
|
|
2d36d3d01d | ||
|
|
a70a4c5e0b | ||
|
|
11bebd527e | ||
|
|
911425b9eb | ||
|
|
665abdd65a | ||
|
|
3ec1985ed9 | ||
|
|
7282c45b74 | ||
|
|
64fa639451 | ||
|
|
585be0e4b8 | ||
|
|
0266735ab6 | ||
|
|
d80fe14be4 | ||
|
|
8c509c8ee8 | ||
|
|
f274cf7664 | ||
|
|
324f9c1d92 | ||
|
|
77fb75f2ae | ||
|
|
acbc392db0 | ||
|
|
d5a7267606 | ||
|
|
8f515b14b3 | ||
|
|
77b45f4aa0 | ||
|
|
73f2ddcbac | ||
|
|
df21184ca5 | ||
|
|
b00838b0e8 | ||
|
|
335d345ac3 | ||
|
|
392b325bba | ||
|
|
129896358d | ||
|
|
222671232b | ||
|
|
ebb6e15503 | ||
|
|
393fecdbec | ||
|
|
08680d523c | ||
|
|
89cb221e2e | ||
|
|
2c6abe9aaa | ||
|
|
2d1669883e | ||
|
|
1c8d1882a1 | ||
|
|
3f6f421287 | ||
|
|
e007de8504 | ||
|
|
626e3975b3 | ||
|
|
15ffcdb45f | ||
|
|
d2b3fc5bf3 | ||
|
|
1af0d7dace | ||
|
|
62df9c5a6b | ||
|
|
b68abacc63 | ||
|
|
4f793a00b2 | ||
|
|
1db21b468e | ||
|
|
240437e885 | ||
|
|
48509f2224 | ||
|
|
9f523e1905 | ||
|
|
8c4a246766 | ||
|
|
1c1efa75d9 | ||
|
|
11233c287c | ||
|
|
09403eca45 | ||
|
|
df2a390d85 | ||
|
|
6c2ae1996e | ||
|
|
8ef2ec493e | ||
|
|
0698fa5759 | ||
|
|
d1d55da304 | ||
|
|
eb8e4cb073 | ||
|
|
6b78aba609 | ||
|
|
0d600a2650 | ||
|
|
690ed21204 | ||
|
|
9086f42b6e | ||
|
|
767a0fbe81 | ||
|
|
48b63b06bc | ||
|
|
3551f76da4 | ||
|
|
62fb789039 | ||
|
|
cdb3536d7e | ||
|
|
c14f567a13 | ||
|
|
94814d7fa0 | ||
|
|
c223fad764 | ||
|
|
cd72b8d8f3 | ||
|
|
e5a3ff0645 | ||
|
|
d4529dcfe5 | ||
|
|
7fe04c0d01 | ||
|
|
c5b46308da | ||
|
|
5ac15f6844 | ||
|
|
c0d4342317 | ||
|
|
f3363f40e4 | ||
|
|
fe517222bd | ||
|
|
5875e7d56b | ||
|
|
1f8bc5079a | ||
|
|
ba15981d28 | ||
|
|
7e73e33152 | ||
|
|
5c516af1cc | ||
|
|
1e041989d9 | ||
|
|
f63957ed01 | ||
|
|
1cb51102ba | ||
|
|
bdaaf70098 | ||
|
|
42c24afbf6 | ||
|
|
92e738f54b | ||
|
|
0369070984 | ||
|
|
ac7267e573 | ||
|
|
44075f5bec | ||
|
|
71cde24094 | ||
|
|
bb9efe5df4 | ||
|
|
4131412566 | ||
|
|
b0a2dd49ce | ||
|
|
dd9155f85e | ||
|
|
25fda866ec | ||
|
|
4de07c2d7a | ||
|
|
4074281265 | ||
|
|
3c63594fc6 | ||
|
|
5f28d954d9 | ||
|
|
6be58e6bd6 | ||
|
|
bed3d1571f | ||
|
|
172154a836 | ||
|
|
8a79f37aba | ||
|
|
09ae20505f | ||
|
|
d3c6da1a54 | ||
|
|
fdfc1fe390 | ||
|
|
c3ec08fbb8 | ||
|
|
bf8ff2ab35 | ||
|
|
175c80a64c | ||
|
|
a4cb5548d7 | ||
|
|
ca20cb6d87 | ||
|
|
69dcbbeec9 | ||
|
|
dd4d58858e | ||
|
|
406505e54b | ||
|
|
4445c56a9e | ||
|
|
3e06b3561f | ||
|
|
b7946797d1 | ||
|
|
17e4afcdd1 | ||
|
|
ee7cbf7122 | ||
|
|
e9afb3eeb7 | ||
|
|
656a083f30 | ||
|
|
ca298f8714 | ||
|
|
f808ab9f63 | ||
|
|
0b025a9959 | ||
|
|
4787f64a7e | ||
|
|
500d94b5f5 | ||
|
|
b8ee85e4c8 | ||
|
|
749fe4330c | ||
|
|
76d130cdc7 | ||
|
|
2feb55f049 | ||
|
|
258f0c58a3 | ||
|
|
f19a7c860e | ||
|
|
d9ccf7bad5 | ||
|
|
d889cf9c2f | ||
|
|
0d4c8c7232 | ||
|
|
0e0f921097 | ||
|
|
54ecc9303f | ||
|
|
5b8ada6438 | ||
|
|
4c90b27713 | ||
|
|
04fbeb3df4 | ||
|
|
2759c71f5a | ||
|
|
2d5aa7fbc6 | ||
|
|
41e4f86d71 | ||
|
|
e273ab906a | ||
|
|
66f986a17e | ||
|
|
ae93a16a2e | ||
|
|
120f054af9 | ||
|
|
7217136174 | ||
|
|
5677c32827 | ||
|
|
18e9c37347 | ||
|
|
1fbfe9a771 | ||
|
|
2182df3570 | ||
|
|
62312be4b3 | ||
|
|
3c509e8938 | ||
|
|
f78647efe0 | ||
|
|
3a39bca8b1 | ||
|
|
a9fb0921a3 | ||
|
|
b455a519d5 | ||
|
|
89063c0a79 | ||
|
|
8251704760 | ||
|
|
434c715966 | ||
|
|
5f5560e41a | ||
|
|
ac18fa40a2 | ||
|
|
c64164f107 | ||
|
|
a042a01c4b | ||
|
|
a1cee85983 | ||
|
|
3ddf57cf26 | ||
|
|
d0967eceb6 | ||
|
|
15daf53c6c | ||
|
|
91fb500295 | ||
|
|
21691ad9dd | ||
|
|
b699489451 | ||
|
|
d14e5928c1 | ||
|
|
6395472dff | ||
|
|
a6e881fb84 | ||
|
|
c529b8685f | ||
|
|
67db44a5d0 | ||
|
|
f39cd5daf0 | ||
|
|
8f642547cc | ||
|
|
7d7bb3f1d0 | ||
|
|
6e35e4735b | ||
|
|
c649b3fd3f | ||
|
|
f7c9343de1 | ||
|
|
9416685360 | ||
|
|
7b6f26895c | ||
|
|
0e55ae2066 | ||
|
|
b0dfe09816 | ||
|
|
06beac8dfc | ||
|
|
7fdb887eac | ||
|
|
5c034b1017 | ||
|
|
d91dbb946f | ||
|
|
d329f73ff9 | ||
|
|
783e0162b1 | ||
|
|
38075b937b | ||
|
|
c9cc590c78 | ||
|
|
35c4132dba | ||
|
|
438075d035 | ||
|
|
d7548d295b | ||
|
|
8028438503 | ||
|
|
efec256ab4 | ||
|
|
1dd034d7b2 | ||
|
|
ca1fdd49d6 | ||
|
|
ae2957dfcb | ||
|
|
c8f0fef06c | ||
|
|
081f178b8c | ||
|
|
c73dc0d137 | ||
|
|
7db3a39c82 | ||
|
|
b43802dd84 | ||
|
|
849b8789d4 | ||
|
|
95a2f6465e | ||
|
|
087117a86b | ||
|
|
22b896e389 | ||
|
|
1837fb1154 | ||
|
|
9df539b8bf | ||
|
|
2927ea02ec | ||
|
|
5aa496fff6 | ||
|
|
69a9408900 | ||
|
|
2a1fff76a7 | ||
|
|
99cf0dc243 | ||
|
|
76f52cafed | ||
|
|
8d7347ec91 | ||
|
|
29fb17fc5e | ||
|
|
28ab8bea59 | ||
|
|
3e286581fb | ||
|
|
8c2bddb5c0 | ||
|
|
c2ae647567 | ||
|
|
7058a72305 | ||
|
|
674004faa5 | ||
|
|
a03a9fd871 | ||
|
|
d077cb451a | ||
|
|
c9221c7315 | ||
|
|
1eb6ac4334 | ||
|
|
0c856af02b | ||
|
|
01563ae25b | ||
|
|
90169017cd | ||
|
|
b949b1c17b | ||
|
|
1022bf88f4 | ||
|
|
6fa7720403 | ||
|
|
57db1efd85 | ||
|
|
d197f2ef8f | ||
|
|
e3e5244efe | ||
|
|
bc072b1b8c | ||
|
|
f46efc9966 | ||
|
|
66e6d0e5d1 | ||
|
|
78c144c627 | ||
|
|
bb36d79cb3 | ||
|
|
f752eabfb9 | ||
|
|
16ba2ccabb | ||
|
|
c4ade41cd4 | ||
|
|
48b56857e9 | ||
|
|
2f160ad951 | ||
|
|
62fab6b9c2 | ||
|
|
c4549b04c0 | ||
|
|
6022039eca | ||
|
|
4a4c1d82ea | ||
|
|
0a44092ff9 | ||
|
|
9bc1ef7fa7 | ||
|
|
4602c4c295 | ||
|
|
e39e7709c2 | ||
|
|
9cc0939efb | ||
|
|
1265a03aaf | ||
|
|
68e3d6e0ab | ||
|
|
10e4076d3f | ||
|
|
0e549dc4cd | ||
|
|
e12ff26636 | ||
|
|
4d49e04609 | ||
|
|
626dee777e | ||
|
|
28d6d4be3f | ||
|
|
70a19c27b8 | ||
|
|
5e49e29acb | ||
|
|
c707e3fdaa | ||
|
|
5f3d5e7efa | ||
|
|
7441acecc1 | ||
|
|
a80d17159a | ||
|
|
6388ba106f | ||
|
|
e3bed5a49e | ||
|
|
e8b7f712d2 | ||
|
|
bc5a536f72 | ||
|
|
f71fa5acfd | ||
|
|
b20f6cfae5 | ||
|
|
52e22ff036 | ||
|
|
6b48ed17ad | ||
|
|
6407c62986 | ||
|
|
f132f83469 | ||
|
|
3b64ad3aba | ||
|
|
b70f981c7e | ||
|
|
afef27f630 | ||
|
|
5607e58b04 | ||
|
|
2d7d6c8e27 | ||
|
|
3bcc5f5a56 | ||
|
|
900490cddb | ||
|
|
504b9eb20f | ||
|
|
1755885b98 | ||
|
|
b5d8bb3beb | ||
|
|
503f287404 | ||
|
|
3e87e859e7 | ||
|
|
af76701c45 | ||
|
|
1693c148c9 | ||
|
|
3d761286ca | ||
|
|
696c430e8d | ||
|
|
89ffa58880 | ||
|
|
e8e2e91399 | ||
|
|
6dbd79c97d | ||
|
|
463add6531 | ||
|
|
b5b9db9950 | ||
|
|
47ba4abc20 | ||
|
|
da50f9fce2 | ||
|
|
507cb58716 | ||
|
|
d1dfa2f2ef | ||
|
|
e156980d18 | ||
|
|
81c92a16de | ||
|
|
44f2bfc5bd | ||
|
|
b15bddf886 | ||
|
|
cc4977ab58 | ||
|
|
1c92370cfb | ||
|
|
5e7eec5466 | ||
|
|
afa125658d | ||
|
|
37519355fa | ||
|
|
19a2298276 | ||
|
|
3aadb86bd9 | ||
|
|
276234212b | ||
|
|
f305ab34f3 | ||
|
|
359ecc0c8d | ||
|
|
6d7e8f0837 | ||
|
|
e582ffed49 | ||
|
|
eebbecc201 | ||
|
|
06ed4f9475 | ||
|
|
b08ad68574 | ||
|
|
a394b0e96b | ||
|
|
1a2069119a | ||
|
|
33bc7571be | ||
|
|
6b72813dbf | ||
|
|
387be2768c | ||
|
|
0d3f563696 | ||
|
|
7f2979b1f4 | ||
|
|
0e7d114635 | ||
|
|
a3d1a1e31a | ||
|
|
376ec3ed12 | ||
|
|
006416f9cd | ||
|
|
69cec6d532 | ||
|
|
94e2c53dd1 | ||
|
|
9d7253e263 | ||
|
|
6174f45f3c | ||
|
|
af72afee29 | ||
|
|
38193da2e5 | ||
|
|
bca725a7f5 | ||
|
|
05ed5fa033 | ||
|
|
5fc841fa5c | ||
|
|
d9cdfbc14b | ||
|
|
96e12e4a73 | ||
|
|
c758e3efc9 | ||
|
|
a5bb505a41 | ||
|
|
bd7c8b05bb | ||
|
|
fd4680ae14 | ||
|
|
bebb037837 | ||
|
|
22a1f7c8c0 | ||
|
|
6e3c3f27c0 | ||
|
|
7261c13325 | ||
|
|
d5637b596c | ||
|
|
4c27f237fc | ||
|
|
a5b02e615f | ||
|
|
0fa22e2ee1 | ||
|
|
6f904959d7 | ||
|
|
3b9d979cfd | ||
|
|
6cc3fcbf00 | ||
|
|
eddacf6eb4 | ||
|
|
da387a7b6b | ||
|
|
6ca8578539 | ||
|
|
f070b140ab | ||
|
|
d7238b5ede | ||
|
|
dc632e960e | ||
|
|
15ba3db855 | ||
|
|
3bbc69b956 | ||
|
|
87610e02c4 | ||
|
|
2c0c94cd3a | ||
|
|
3d734ba465 | ||
|
|
c727894e9e | ||
|
|
07f078ddd9 | ||
|
|
9f543218e3 | ||
|
|
4f1f793d5d | ||
|
|
c7f1a6e1bb | ||
|
|
e5c83bcc27 | ||
|
|
a0081f8ab6 | ||
|
|
ba9e4fa77f | ||
|
|
980a1f5f12 | ||
|
|
0d46ec8945 | ||
|
|
6bff3230e4 | ||
|
|
36de5f3261 | ||
|
|
6e90d9063c | ||
|
|
b0d76da301 | ||
|
|
0caada1b0e | ||
|
|
8228607ce4 | ||
|
|
97a8ef1e33 | ||
|
|
d6ba8d2bfd | ||
|
|
b08bb9477a | ||
|
|
eac86c41bd | ||
|
|
15a77f9d60 | ||
|
|
eebeafd32c | ||
|
|
ffdfc047dd | ||
|
|
345d7ff5a9 | ||
|
|
179f7bcbb0 | ||
|
|
ef0ea1ffaf | ||
|
|
383b6ac621 | ||
|
|
ab05ab8d13 | ||
|
|
8422b01c8a | ||
|
|
f7420eb325 | ||
|
|
88db11bcf6 | ||
|
|
6287c1e39d | ||
|
|
2ef0a34081 | ||
|
|
722136b427 | ||
|
|
95c1f26ee3 | ||
|
|
09da0df5a7 | ||
|
|
565061e648 | ||
|
|
2b5f7351f0 | ||
|
|
f54f7c8daa | ||
|
|
45fbed4803 | ||
|
|
830b736422 | ||
|
|
134bebae10 | ||
|
|
3a47f46a24 | ||
|
|
2dcafc971d | ||
|
|
87e89d078d | ||
|
|
812ce0f922 | ||
|
|
caf36cd891 | ||
|
|
927cf812dc | ||
|
|
9296989aac | ||
|
|
f4309db6eb | ||
|
|
40290e8e98 | ||
|
|
c3a663a941 | ||
|
|
6ae65420fa | ||
|
|
4693078053 | ||
|
|
3e3ee236bd | ||
|
|
48f4f2c338 | ||
|
|
dfe7c5930b | ||
|
|
ca06c12e6f | ||
|
|
9980ffed92 | ||
|
|
d4ef95fb5a | ||
|
|
11f41a1b1f | ||
|
|
21843e0568 | ||
|
|
432390505f | ||
|
|
74c425ac9a | ||
|
|
5e86bf7b59 | ||
|
|
b15f94ba49 | ||
|
|
c6eeb27451 | ||
|
|
50e6a27ca6 | ||
|
|
a728740db6 | ||
|
|
7cbe0ed2d3 | ||
|
|
87860df81b | ||
|
|
c73ace8cd2 | ||
|
|
cf3f0fad01 | ||
|
|
c508f1f8d6 | ||
|
|
a8855cab87 | ||
|
|
5a7a3ee426 | ||
|
|
356fbb368e | ||
|
|
56363364f3 | ||
|
|
94b3c54746 | ||
|
|
183b8743ee | ||
|
|
5f1797f842 | ||
|
|
e6a35b676e | ||
|
|
a35e65d726 | ||
|
|
19772bc0ab | ||
|
|
cfb0c49580 | ||
|
|
476b899130 | ||
|
|
ae1ed84680 | ||
|
|
01ae33f47f | ||
|
|
844da04d0a | ||
|
|
0e90d98e54 | ||
|
|
bcc17a0556 | ||
|
|
739f07045d | ||
|
|
9b699debb8 | ||
|
|
70e58ced3f | ||
|
|
f868a70089 | ||
|
|
95af54ef9e | ||
|
|
0c106f4825 | ||
|
|
aba733e2e6 | ||
|
|
a9d350dd7e | ||
|
|
a0f2953c3b | ||
|
|
21d380db42 | ||
|
|
6d0471a81d | ||
|
|
13bd60d570 | ||
|
|
4b1ec50486 | ||
|
|
61153fc999 | ||
|
|
6d74fdd6f3 | ||
|
|
e82a23baa9 | ||
|
|
275b545789 | ||
|
|
78cfafe3af | ||
|
|
bb7990a815 | ||
|
|
f6eeb4b7bc | ||
|
|
6313f9e0b5 | ||
|
|
815fab849a | ||
|
|
3d9760451c | ||
|
|
213547697a | ||
|
|
7d7580c3a8 | ||
|
|
c5de279a83 | ||
|
|
3494aee2cb | ||
|
|
88cfb23bd5 | ||
|
|
19050377c3 | ||
|
|
9af668045f | ||
|
|
36f771101b | ||
|
|
f36606f1fb | ||
|
|
7c3d2b13ef | ||
|
|
b1ac35fe08 | ||
|
|
9a2419d110 | ||
|
|
cfbf8b3273 | ||
|
|
5df2f0f002 | ||
|
|
4cf15de550 | ||
|
|
65856e80bc | ||
|
|
d382fc3cb1 | ||
|
|
092a603374 | ||
|
|
32b8a89321 | ||
|
|
4748d9ed6e | ||
|
|
55eb91cb8b | ||
|
|
438ee5ce42 | ||
|
|
0eff25ca24 | ||
|
|
772f34e6c6 | ||
|
|
63d84257dc | ||
|
|
51ac353f8f | ||
|
|
8a53fbbacd | ||
|
|
aabd75cdd2 | ||
|
|
6c7eadc19d | ||
|
|
deaea09215 | ||
|
|
044d0b9180 | ||
|
|
40de26e218 | ||
|
|
b5a0a88a0d | ||
|
|
3e62990038 | ||
|
|
2fc21d82bf | ||
|
|
82f75afae1 | ||
|
|
6eb9033b2c | ||
|
|
e27aa715fe | ||
|
|
1c429c3bdf | ||
|
|
07e5f14d9d | ||
|
|
0fc8ccd8c9 | ||
|
|
1446e496ee | ||
|
|
3368a8b659 | ||
|
|
a87a2a7072 | ||
|
|
f499f6f3d4 | ||
|
|
8be3369f6b | ||
|
|
29f449a769 | ||
|
|
866b01ad4a | ||
|
|
7c7ed2eb7b | ||
|
|
b5178dfa83 | ||
|
|
c8f7e590c8 | ||
|
|
48a06fe1ba | ||
|
|
b80ab3d098 | ||
|
|
ccb7df164f | ||
|
|
a7f9c7f1c7 | ||
|
|
067a2d3637 | ||
|
|
0987869594 | ||
|
|
bc6ad9ea8f | ||
|
|
75a45c255d | ||
|
|
7059c78d34 | ||
|
|
5858bece9b | ||
|
|
0262fee2ac | ||
|
|
dbd531905b | ||
|
|
ef5c317de1 | ||
|
|
3911ad7128 | ||
|
|
4225dff79a | ||
|
|
7622804e89 | ||
|
|
b94956de77 | ||
|
|
549ff802e8 | ||
|
|
1c4cc58be9 | ||
|
|
bb5af95667 | ||
|
|
b73c1b9601 | ||
|
|
00b6e91efd | ||
|
|
1e23d99a89 | ||
|
|
e2c43ab470 | ||
|
|
c5cdd6d1c4 | ||
|
|
b988736054 | ||
|
|
4766e9ea8a | ||
|
|
78726ce837 | ||
|
|
69b6352907 | ||
|
|
3929214925 | ||
|
|
edadd20212 | ||
|
|
e1ce2a248c | ||
|
|
88521e9e95 | ||
|
|
347c3d598e | ||
|
|
5b3eb8e089 | ||
|
|
97a959f0da | ||
|
|
b6e97e249a | ||
|
|
5d07edfee4 | ||
|
|
b5955efa8b | ||
|
|
e35640092a | ||
|
|
b9c7d0d6bc | ||
|
|
45ee920b32 | ||
|
|
976e6a9eea | ||
|
|
47c76d1edc | ||
|
|
070d48d057 | ||
|
|
96a87e4a4e | ||
|
|
5dd9f3d35b | ||
|
|
fbebbd24dd | ||
|
|
c985f313fb | ||
|
|
9b5f39fd40 | ||
|
|
e290fe76fd | ||
|
|
a7d7034499 | ||
|
|
af7d6599c8 | ||
|
|
2274a95911 | ||
|
|
73276177f3 | ||
|
|
9f332ea14a | ||
|
|
1c308ab2ab | ||
|
|
d0ca7b4761 | ||
|
|
c8f31837f4 | ||
|
|
4499e7d68a | ||
|
|
e40d0a120b | ||
|
|
235f373b1d | ||
|
|
ed8933f962 | ||
|
|
2472547f86 | ||
|
|
338d2ce98b | ||
|
|
077db8da11 | ||
|
|
0ad749db63 | ||
|
|
349000746c | ||
|
|
2d8a2eb0f7 | ||
|
|
211e724f74 | ||
|
|
0e6b82051a | ||
|
|
07486c6d37 | ||
|
|
6a59cd1ce7 | ||
|
|
31ca0426c9 | ||
|
|
b39e4a4133 | ||
|
|
839e992afc | ||
|
|
1bf75f9c47 | ||
|
|
715684c073 | ||
|
|
8101863073 | ||
|
|
7bb8d34f87 | ||
|
|
c8d484108d | ||
|
|
d1ffee2e49 | ||
|
|
cdcecc0766 | ||
|
|
47f816ca5f | ||
|
|
261574c146 | ||
|
|
6cf9eabe9e | ||
|
|
56271d73eb | ||
|
|
3b073b64c4 | ||
|
|
1e4826c3ac | ||
|
|
af8edbe982 | ||
|
|
fde2642bf8 | ||
|
|
a0b2de8547 | ||
|
|
6d09d2577e | ||
|
|
016c8b0248 | ||
|
|
036ad6b006 | ||
|
|
767b3b7798 | ||
|
|
ede1f9e5ec |
119
.github/ISSUE_TEMPLATE/bug.yaml
vendored
|
|
@ -1,47 +1,101 @@
|
|||
name: Bug
|
||||
description: Make sure you complete the template. Otherwise, it will be closed without further explanation!
|
||||
description: Report a bug here
|
||||
title: "[Bug] Replace this with your title"
|
||||
labels: bug
|
||||
body:
|
||||
- type: checkboxes
|
||||
attributes:
|
||||
label: Is there an existing issue for this?
|
||||
description: _Please search to see if an issue already exists for the bug you encountered_
|
||||
options:
|
||||
- label: I have searched the existing issues
|
||||
required: true
|
||||
|
||||
- type: checkboxes
|
||||
|
||||
- type: markdown
|
||||
attributes:
|
||||
label: Have you read the FAQ?
|
||||
description: _Make sure you visit the [**FAQ**](https://github.com/qnblackcat/CercubePlus/wiki/FAQ) page first!_
|
||||
options:
|
||||
- label: Yes, I read the FAQ
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
value: "## Device Info"
|
||||
|
||||
- type: input
|
||||
attributes:
|
||||
label: Device info
|
||||
description:
|
||||
value: |
|
||||
- iOS/iPadOS version:
|
||||
- Device model:
|
||||
- Sideload tool (AltStore, Sideloadly, TrollStore,...):
|
||||
- The specific version of CercubePlus (**latest** or **newest** is **NOT** a version number!):
|
||||
label: iOS/iPadOS version
|
||||
placeholder: iOS 17.5.1
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: input
|
||||
attributes:
|
||||
label: Device model
|
||||
placeholder: iPhone 15 Pro Max
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: input
|
||||
attributes:
|
||||
label: Sideload method
|
||||
placeholder: AltStore, Sideloadly, TrollStore, Signulous, deb, ...
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: input
|
||||
attributes:
|
||||
label: Tweak version
|
||||
placeholder: YTLitePlus - v19.xx.x-4.0.1
|
||||
description: "**latest or newest is NOT a version number!**"
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: dropdown
|
||||
attributes:
|
||||
label: Do you use YouTube Premium?
|
||||
options:
|
||||
- ❌ No, I don't use YouTube Premium
|
||||
- ✅ Yes, I do use YouTube Premium
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: dropdown
|
||||
attributes:
|
||||
label: Are you using the newest version of YTLitePlus?
|
||||
description: Update to the [latest version](https://github.com/YTLitePlus/YTLitePlus/releases) to see if it fixes your issue
|
||||
options:
|
||||
- ✅ Yes, I'm using the latest version
|
||||
- ❌ No, I'll explain at the end
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: dropdown
|
||||
attributes:
|
||||
label: Does the issue happen with the official YouTube from AppStore?
|
||||
options:
|
||||
- ❌ No, I can't reproduce this issue in the official YouTube from AppStore
|
||||
- ✅ Yes, I can reproduce this issue in the official YouTube from AppStore
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: dropdown
|
||||
attributes:
|
||||
label: Method used to build the iPA
|
||||
options:
|
||||
- buildapp.yml (GitHub Actions)
|
||||
- build.sh (Shell script)
|
||||
- Downloaded from third party
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: "## Description"
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Describe the bug
|
||||
description: _Please attach videos or screenshots if possible_
|
||||
description: Please attach videos or screenshots if possible
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Steps to reproduce the issue
|
||||
description: _Please attach videos or screenshots if possible_
|
||||
description: Please attach videos or screenshots if possible
|
||||
value: |
|
||||
1.
|
||||
2.
|
||||
|
|
@ -53,34 +107,11 @@ body:
|
|||
id: logs
|
||||
attributes:
|
||||
label: Crash log (if the app crashes)
|
||||
description: _If somehow the app crashes, **you must provide the crash log**. It can be found in your device's Settings App > Privacy > Analytics & Improvements > Analytics Data > Youtube-xxx-xxx.ips_
|
||||
description: It can be found in Settings App > Privacy > Analytics & Improvements > Analytics Data > Youtube-xxx-xxx.ips
|
||||
render: shell
|
||||
|
||||
- type: dropdown
|
||||
attributes:
|
||||
label: Are you using the newest version of CercubePlus? If not, why?
|
||||
description: _Developers spend time and effort to fix bugs & add improvements with every release. Why don't you update to the [latest version](https://github.com/Balackburn/CercubePlusExtra/releases/latest) before reporting about an issue?_
|
||||
multiple: false
|
||||
options:
|
||||
- ✅ Yes, I'm using the latest version of CercubePlus right now
|
||||
- ❌ No, I'll explain at the end of the template
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: dropdown
|
||||
attributes:
|
||||
label: Does the issue happen with the official YouTube from AppStore?
|
||||
description: _Well, YouTube itself is buggy sometimes..._
|
||||
multiple: false
|
||||
options:
|
||||
- ❌ No, It doesn't
|
||||
- ✅ Yes, It does
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Additional context
|
||||
description: _Um, anything else you want to say?_
|
||||
validations:
|
||||
required: false
|
||||
|
|
|
|||
32
.github/ISSUE_TEMPLATE/feature-request.yaml
vendored
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
name: Feature Request
|
||||
description: Request a new feature to be added
|
||||
title: "[Request] Replace with your question"
|
||||
labels: enhancement
|
||||
body:
|
||||
- type: checkboxes
|
||||
attributes:
|
||||
label: Is there an existing issue for this?
|
||||
options:
|
||||
- label: I have searched the existing issues
|
||||
required: true
|
||||
|
||||
- type: dropdown
|
||||
attributes:
|
||||
label: Do you use YouTube Premium?
|
||||
options:
|
||||
- ❌ No, I don't use YouTube Premium
|
||||
- ✅ Yes, I do use YouTube Premium
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: My feature request
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Additional context
|
||||
validations:
|
||||
required: false
|
||||
|
|
@ -5,8 +5,7 @@ labels: question
|
|||
body:
|
||||
- type: checkboxes
|
||||
attributes:
|
||||
label: Is there an existing issue/question for this?
|
||||
description: _Please search to see if an issue already exists for the bug you encountered. **I DON\'T MAKE THIS TICK BOX FOR COSMETIC.**_
|
||||
label: Is there an existing issue for this?
|
||||
options:
|
||||
- label: I have searched the existing issues
|
||||
required: true
|
||||
|
|
@ -14,7 +13,7 @@ body:
|
|||
- type: dropdown
|
||||
attributes:
|
||||
label: Do you think this is a bug?
|
||||
description: _If you think this is a bug, please open a new issue with the bug template_
|
||||
description: _If so, please use the bug template_
|
||||
multiple: false
|
||||
options:
|
||||
- ✅ Yes, I believe this is a bug. I will open a new issue with the bug template
|
||||
|
|
@ -25,13 +24,11 @@ body:
|
|||
- type: textarea
|
||||
attributes:
|
||||
label: My question
|
||||
description: _Please enter your question here_
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Additional context
|
||||
description: _Um, anything else you want to say?_
|
||||
validations:
|
||||
required: false
|
||||
53
.github/RELEASE_TEMPLATE/Release.md
vendored
|
|
@ -1,42 +1,21 @@
|
|||
# [YOUR_TWEAK_NAME] Features
|
||||
CercubePlus but adds Additional Features that should’ve been added to the native CercubePlus which were probably not added.
|
||||
# ⚠️ Must Read ⚠️
|
||||
- The .ipa file is no longer shared on Github due to a [Google DMCA notice](https://www.reddit.com/r/jailbreak/comments/1b86tiz/balackburn_here_maintainer_of_ytliteplus_ive_just/)
|
||||
- You need to build it yourself. See [Wiki-Building](https://github.com/Balackburn/YTLitePlus/wiki/Building)
|
||||
|
||||
**LowContrastMode:** This tweak helps remove the new contrasty looking UI that was first introducted way back in 2020 August/September. (Tweak made by arichorn)
|
||||
<details>
|
||||
<summary>More Features...</summary>
|
||||
# YTLitePlus Release Information
|
||||
|
||||
**LowContrastModeColors:** for users who doesn’t use gray will get a set of colors to switch which changes and improves the UI Customization. (Add-on added for LowContrastMode)
|
||||
Current YouTube IPA: `%youtube_version%`
|
||||
Current YTLite Version: `%ytliteplus_version%`
|
||||
Current App Compatibility: `iOS/iPadOS 15.0` or later
|
||||
|
||||
**YTNoHeatwaves:** Turns off the Heatwaves Feature in the video player. `(CercubePlus/VideoPlayerOverlayControls)`
|
||||
**RELEASE %youtube_version%-%ytliteplus_version%:** (%date%)
|
||||
|
||||
**YTNoUpgradeDialog:** Disables the Upgrade Dialog so you won’t be prompt to update the app.
|
||||
- Updated Youtube from `%youtube_version%` to `%youtube_version%`
|
||||
- Updated YTLite from `%ytliteplus_version%` to `%ytliteplus_version%`
|
||||
|
||||
### Issues in this Release:
|
||||
- LowContrastMode does not work *(Compatible only with YouTube v17.33.2-v17.38.10)*
|
||||
- Hiding Shorts creates an empty space instead #55
|
||||
|
||||
**YouMute:** Mute/unmute videos in YouTube directly.
|
||||
|
||||
**iPadLayout:** Gives iPhone users the ability to use the iPad’s Interface and the ability to use the some of the YouTube features that are not on iPhone.
|
||||
|
||||
**iPhoneLayout:** Gives iPad users the ability to use Community Posts, to create Shorts and the ability to use the buggy iPhone layout. but using it in split view mode fixes the ui.
|
||||
|
||||
**HideSponsorBlockButton:** Hide the SponsorBlock Button shown on the Nav Bar. Added by Dayanch96
|
||||
|
||||
**DisableWifiRelatedOptions:** want to remove sections that are only shown when internet is on? You can toggle this to remove all of those sections. Well not all but toggling the option will remove some of the annoying sections that may not be used.
|
||||
|
||||
**HideShadowOverlayButtons:** want to remove shadow overlay on the buttons used in the video player? Then toggle this to remove the Shadow Overlay on the buttons Previous, Next, Rewind, Forward.
|
||||
|
||||
**etc..**
|
||||
</details>
|
||||
|
||||
# [YOUR_TWEAK_NAME] Release Information
|
||||
Current YouTube IPA: `TEMPLATE`
|
||||
Current Cercube Version: `v5.3.13`
|
||||
Current App Compatibility: `iOS/iPadOS 14.0` or later
|
||||
|
||||
**RELEASE F1:**
|
||||
[THIS IS WHERE YOU PUT YOUR CHANGES BELOW, also F1 indicates First Release on the same YouTube Version in case you needed to know]
|
||||
- [<-- this subtract symbol makes the changelog look cool]
|
||||
|
||||
- [this right here shows you added additonal changes on a certain tweak like this for example, below]
|
||||
- Improvements
|
||||
- Fixed Sign-in Issue
|
||||
- Fixed Ads Not Working Issue
|
||||
[THIS IS HOW YOU DO IT! YOU CAN DELETE ALL OF THE TEXT I'VE SAID!]
|
||||
### Catbox
|
||||
`%catbox_url%`
|
||||
206
.github/workflows/buildapp.yml
vendored
|
|
@ -6,36 +6,46 @@ name: Build and Release YTLitePlus
|
|||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
sdk_version:
|
||||
description: "iOS SDK Version"
|
||||
default: "16.5"
|
||||
required: true
|
||||
type: string
|
||||
decrypted_youtube_url:
|
||||
description: "The direct URL to the decrypted YouTube ipa"
|
||||
description: "Direct URL of the decrypted YouTube ipa"
|
||||
default: ""
|
||||
required: true
|
||||
type: string
|
||||
youtube_version:
|
||||
description: "The version of YouTube"
|
||||
default: ""
|
||||
required: true
|
||||
type: string
|
||||
ytliteplus_version:
|
||||
description: "The version of YTLitePlus"
|
||||
default: "2.0"
|
||||
required: true
|
||||
type: string
|
||||
bundle_id:
|
||||
description: "Modify the bundle ID. Not recommended"
|
||||
description: "Modify the bundle ID"
|
||||
default: "com.google.ios.youtube"
|
||||
required: true
|
||||
type: string
|
||||
app_name:
|
||||
description: "Modify the name of the app on the Home Screen. Not recommended"
|
||||
description: "Modify the app name"
|
||||
default: "YouTube"
|
||||
required: true
|
||||
type: string
|
||||
create_release:
|
||||
description: "Create a draft release"
|
||||
commit_id:
|
||||
description: "(Optional) Commit ID to build at"
|
||||
default: ""
|
||||
required: false
|
||||
type: string
|
||||
upload_artifact:
|
||||
description: "Upload iPA as artifact (Public)"
|
||||
default: true
|
||||
required: false
|
||||
type: boolean
|
||||
catbox_upload:
|
||||
description: "Upload iPA to Catbox.moe (URL)"
|
||||
default: false
|
||||
required: false
|
||||
type: boolean
|
||||
create_release:
|
||||
description: "Create a draft release (Private)"
|
||||
default: false
|
||||
required: false
|
||||
type: boolean
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
|
|
@ -44,47 +54,53 @@ concurrency:
|
|||
jobs:
|
||||
build:
|
||||
name: Build YTLitePlus
|
||||
runs-on: macos-latest
|
||||
runs-on: macos-12
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
steps:
|
||||
- name: Checkout Main
|
||||
uses: actions/checkout@v3.5.2
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
path: main
|
||||
ref: ${{ github.event.inputs.commit_id || github.ref }}
|
||||
submodules: recursive
|
||||
|
||||
- name: Install Dependencies
|
||||
run: brew install ldid dpkg make
|
||||
|
||||
- name: Setup Theos
|
||||
uses: actions/checkout@v3.5.2
|
||||
- name: Download Theos
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
repository: theos/theos
|
||||
ref: master
|
||||
ref: 3da31488281ecf4394d10302d2629607f4a1aa07
|
||||
path: theos
|
||||
submodules: recursive
|
||||
|
||||
- name: Caching
|
||||
- name: iOS SDK Caching
|
||||
id: SDK
|
||||
uses: actions/cache@v3.3.1
|
||||
uses: actions/cache@v4
|
||||
env:
|
||||
cache-name: iOS-15.5-SDK
|
||||
cache-name: iOS-${{ inputs.sdk_version }}-SDK
|
||||
with:
|
||||
path: theos/sdks/
|
||||
key: ${{ env.cache-name }}
|
||||
restore-keys: ${{ env.cache-name }}
|
||||
|
||||
- name: Download iOS 15.5 SDK
|
||||
- name: Download iOS SDK
|
||||
if: steps.SDK.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
svn checkout -q https://github.com/chrisharper22/sdks/trunk/iPhoneOS15.5.sdk
|
||||
# Only download the specific SDK version
|
||||
git clone -n --depth=1 --filter=tree:0 https://github.com/theos/sdks/
|
||||
cd sdks
|
||||
git sparse-checkout set --no-cone iPhoneOS${{ inputs.sdk_version }}.sdk
|
||||
git checkout
|
||||
mv *.sdk $THEOS/sdks
|
||||
env:
|
||||
THEOS: ${{ github.workspace }}/theos
|
||||
|
||||
- name: Setup Theos Jailed
|
||||
uses: actions/checkout@v3.5.2
|
||||
- name: Download Theos Jailed
|
||||
uses: actions/checkout@v4.1.7
|
||||
with:
|
||||
repository: qnblackcat/theos-jailed
|
||||
ref: master
|
||||
|
|
@ -96,64 +112,146 @@ jobs:
|
|||
./theos-jailed/install
|
||||
env:
|
||||
THEOS: ${{ github.workspace }}/theos
|
||||
|
||||
- name: Fix Compiling
|
||||
run: |
|
||||
# Update GNU Make to allow for faster building
|
||||
echo "$(brew --prefix make)/libexec/gnubin" >> $GITHUB_PATH
|
||||
(echo export PATH="/usr/local/opt/make/libexec/gnubin:$PATH" >> ~/.bash_profile)
|
||||
source ~/.bash_profile
|
||||
|
||||
- name: Prepare YouTube iPA
|
||||
run: |
|
||||
# Download and unzip iPA
|
||||
wget "$YOUTUBE_URL" --no-verbose -O main/YouTube.ipa
|
||||
echo -e "==> \033[1mYouTube v${{ inputs.youtube_version }} downloaded! \033[0m"
|
||||
unzip -q main/YouTube.ipa -d main/tmp
|
||||
# Get the version number of the YouTube app and store it
|
||||
echo "YT_VERSION=$(grep -A 1 '<key>CFBundleVersion</key>' main/tmp/Payload/YouTube.app/Info.plist | grep '<string>' | awk -F'[><]' '{print $3}')" >> $GITHUB_ENV
|
||||
# Get the version number of the latest release
|
||||
wget -qO- https://github.com/dayanch96/YTLite/releases/latest > main/tmp/release_page.html
|
||||
YTLITE_VERSION=$(grep -o -E '/tag/v[^"]+' main/tmp/release_page.html | head -n 1 | sed 's/\/tag\/v//')
|
||||
echo "YTLITE_VERSION=${YTLITE_VERSION}" >> $GITHUB_ENV
|
||||
echo $YTLITE_VERSION
|
||||
# Remove contents in the iPA that interfere with sideloading
|
||||
rm -rf main/tmp/Payload/YouTube.app/_CodeSignature/CodeResources
|
||||
rm -rf main/tmp/Payload/YouTube.app/PlugIns/*
|
||||
cp -R main/Extensions/*.appex main/tmp/Payload/YouTube.app/PlugIns
|
||||
echo -e "==> \033[1mYouTube v${{ inputs.youtube_version }} unpacked! \033[0m"
|
||||
# Modify Info.plist to remove UISupportedDevices (Python script)
|
||||
python - <<EOF
|
||||
import plistlib
|
||||
def remove_uisupporteddevices(filepath):
|
||||
with open(filepath, 'rb') as f:
|
||||
plist = plistlib.load(f)
|
||||
|
||||
if 'UISupportedDevices' in plist:
|
||||
del plist['UISupportedDevices']
|
||||
|
||||
with open(filepath, 'wb') as f:
|
||||
plistlib.dump(plist, f)
|
||||
|
||||
filepath = 'main/tmp/Payload/YouTube.app/Info.plist'
|
||||
remove_uisupporteddevices(filepath)
|
||||
EOF
|
||||
# Manually install the Open in YouTube extension
|
||||
cp -R main/Extensions/*.appex main/tmp/Payload/YouTube.app/PlugIns
|
||||
env:
|
||||
THEOS: ${{ github.workspace }}/theos
|
||||
YOUTUBE_VERSION: ${{ inputs.youtube_version }}
|
||||
YOUTUBE_URL: ${{ inputs.decrypted_youtube_url }}
|
||||
|
||||
- name: Fix Compiling & Build Package
|
||||
- name: Build Package
|
||||
id: build_package
|
||||
run: |
|
||||
(echo PATH=\"$(brew --prefix make)/libexec/gnubin:\$PATH\" >> ~/.zprofile)
|
||||
cd ${{ github.workspace }}/main
|
||||
sed -i '' "12s#.*#BUNDLE_ID = ${{ env.BUNDLE_ID }}#g" Makefile
|
||||
sed -i '' "11s#.*#DISPLAY_NAME = ${{ env.APP_NAME }}#g" Makefile
|
||||
make package FINALPACKAGE=1
|
||||
(mv "packages/$(ls -t packages | head -n1)" "packages/YTLitePlus_${{ env.YOUTUBE_VERSION }}.ipa")
|
||||
echo "package=$(ls -t packages | head -n1)" >>$GITHUB_OUTPUT
|
||||
# Replace lines in Makefile based on inputs
|
||||
sed -i '' "s/^BUNDLE_ID.*$/BUNDLE_ID = ${{ env.BUNDLE_ID }}/" Makefile
|
||||
sed -i '' "s/^DISPLAY_NAME.*$/DISPLAY_NAME = ${{ env.APP_NAME }}/" Makefile
|
||||
sed -i '' "s/^PACKAGE_VERSION.*$/PACKAGE_VERSION = ${{ env.YT_VERSION }}-${{ env.YTLITE_VERSION }}/" Makefile
|
||||
sed -i '' "s/^export TARGET.*$/export TARGET = iphone:clang:${{ inputs.sdk_version }}:14.0/" Makefile
|
||||
# Build the package
|
||||
make package
|
||||
# Rename the package based on the version
|
||||
(mv "packages/$(ls -t packages | head -n1)" "packages/YTLitePlus_${{ env.YT_VERSION }}_${{ env.YTLITE_VERSION }}.ipa")
|
||||
# Pass package name to the upload step
|
||||
echo "package=$(ls -t packages | head -n1)" >> $GITHUB_OUTPUT
|
||||
# Print out the hash and bundle ID
|
||||
echo -e "==> \033[1mSHASUM256: $(shasum -a 256 packages/*.ipa | cut -f1 -d' ')\033[0m"
|
||||
echo -e "==> \033[1mBundle ID: ${{ env.BUNDLE_ID }}\033[0m"
|
||||
env:
|
||||
THEOS: ${{ github.workspace }}/theos
|
||||
ytliteplus_version: ${{ inputs.ytliteplus_version }}
|
||||
YOUTUBE_VERSION: ${{ inputs.youtube_version }}
|
||||
BUNDLE_ID: ${{ inputs.bundle_id }}
|
||||
APP_NAME: ${{ inputs.app_name }}
|
||||
|
||||
- name: Upload Artifact
|
||||
uses: actions/upload-artifact@v3.1.2
|
||||
env:
|
||||
ytliteplus_version: ${{ inputs.ytliteplus_version }}
|
||||
YOUTUBE_VERSION: ${{ inputs.youtube_version }}
|
||||
if: ${{ inputs.upload_artifact }}
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: YTLitePlus_${{ env.YOUTUBE_VERSION }}_${{ env.ytliteplus_version }}
|
||||
name: YTLitePlus_${{ env.YT_VERSION }}_${{ env.YTLITE_VERSION }}
|
||||
path: ${{ github.workspace }}/main/packages/${{ steps.build_package.outputs.package }}
|
||||
if-no-files-found: error
|
||||
|
||||
- name: Upload Artifact to Catbox
|
||||
if: ${{ inputs.catbox_upload }}
|
||||
run: |
|
||||
RESPONSE=$(curl -F "reqtype=fileupload" -F "fileToUpload=@${{ github.workspace }}/main/packages/${{ steps.build_package.outputs.package }}" https://catbox.moe/user/api.php)
|
||||
CATBOX_URL=$(echo $RESPONSE | grep -o -E 'https://files.catbox.moe/[^"]*')
|
||||
echo "Uploaded artifact to $CATBOX_URL"
|
||||
CATBOX_FILE=$(echo $CATBOX_URL | sed 's|https://files.catbox.moe/||')
|
||||
# Pass Catbox URL to the release steps
|
||||
echo "CATBOX_FILE=$CATBOX_FILE" >> $GITHUB_ENV
|
||||
echo "CATBOX_URL=$CATBOX_URL" >> $GITHUB_ENV
|
||||
|
||||
- name: Prepare Release Notes
|
||||
if: ${{ inputs.create_release }}
|
||||
run: |
|
||||
export TODAY=$(date '+%Y-%m-%d')
|
||||
sed "s/%ytliteplus_version%/${{ env.YTLITE_VERSION }}/g; s/%youtube_version%/${{ env.YT_VERSION }}/g; s/%catbox_url%/${{ env.CATBOX_FILE }}/g; s/%date%/$TODAY/g" \
|
||||
main/.github/RELEASE_TEMPLATE/Release.md > ${{ github.workspace }}/release_notes.md
|
||||
|
||||
- name: Create Release
|
||||
- name: Create Draft Release
|
||||
if: ${{ inputs.create_release }}
|
||||
id: create_release
|
||||
uses: softprops/action-gh-release@v0.1.15
|
||||
uses: softprops/action-gh-release@v2
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
ytliteplus_version: ${{ inputs.ytliteplus_version }}
|
||||
YOUTUBE_VERSION: ${{ inputs.youtube_version }}
|
||||
DRAFT: ${{ inputs.create_release }}
|
||||
with:
|
||||
tag_name: v${{ env.YOUTUBE_VERSION }}-${{ env.ytliteplus_version }}-(${{ github.run_number }})
|
||||
name: v${{ env.YOUTUBE_VERSION }}-${{ env.ytliteplus_version }}-(${{ github.run_number }})
|
||||
tag_name: v${{ env.YT_VERSION }}-${{ env.YTLITE_VERSION }}
|
||||
name: v${{ env.YT_VERSION }}-${{ env.YTLITE_VERSION }} - YTLitePlus
|
||||
files: main/packages/*.ipa
|
||||
draft: ${{ env.DRAFT }}
|
||||
draft: true
|
||||
body_path: ${{ github.workspace }}/release_notes.md
|
||||
|
||||
- name: Update Altstore Source with latest release
|
||||
if: ${{ inputs.create_release }}
|
||||
run: |
|
||||
curl --location --request POST 'https://api.github.com/repos/Balackburn/YTLitePlusAltstore/dispatches' \
|
||||
--header 'Authorization: token ${{ secrets.PERSONAL_ACCESS_TOKEN }}' \
|
||||
--header 'Content-Type: application/json' \
|
||||
--data-raw '{
|
||||
"event_type": "update-altstore-source-trigger"
|
||||
}'
|
||||
|
||||
|
||||
- name: Job Summary
|
||||
run: |
|
||||
echo -e '### 📺 Build Complete' >> $GITHUB_STEP_SUMMARY
|
||||
|
||||
- name: Job Summary - Artifact Upload
|
||||
if: ${{ inputs.upload_artifact }}
|
||||
run: |
|
||||
echo -e '### 📦 Artifact Upload\n\nThe artifact was uploaded successfully! Refresh and [scroll down](#artifacts) to view the artifact. Note that you must be signed in to GitHub to download it.' >> $GITHUB_STEP_SUMMARY
|
||||
|
||||
- name: Job Summary - Catbox Upload
|
||||
if: ${{ inputs.catbox_upload}}
|
||||
run: |
|
||||
echo -e '### 🐱 Catbox Upload\n\nThe Catbox upload was successful! Here is a permanent shareable link: '$CATBOX_URL >> $GITHUB_STEP_SUMMARY
|
||||
|
||||
- name: Job Summary - Draft Release
|
||||
if: ${{ inputs.create_release }}
|
||||
run: |
|
||||
REPO_URL="https://github.com/${{ github.repository }}"
|
||||
RELEASES_URL="$REPO_URL/releases"
|
||||
echo -e '### 🚀 Draft Release\n\nThe release draft has been created successfully! You can view your releases here: '$RELEASES_URL >> $GITHUB_STEP_SUMMARY
|
||||
|
||||
- name: Job Summary - Link to remove GitHub Action runs
|
||||
run: |
|
||||
REPO_URL="https://github.com/${{ github.repository }}"
|
||||
DELETE_RUNS_URL="$REPO_URL/actions/workflows/delete-workflow-runs.yml"
|
||||
echo -e '### 🧹 Cleanup\n\nYou can remove previous GitHub Action runs here: '$DELETE_RUNS_URL >> $GITHUB_STEP_SUMMARY
|
||||
|
|
|
|||
69
.github/workflows/delete-workflow-runs.yml
vendored
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
# This is based on the example at https://github.com/marketplace/actions/delete-workflow-runs
|
||||
|
||||
name: Delete old workflow runs
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
days:
|
||||
description: 'Days-worth of runs to keep for each workflow'
|
||||
required: true
|
||||
default: '0'
|
||||
minimum_runs:
|
||||
description: 'Minimum runs to keep for each workflow'
|
||||
required: true
|
||||
default: '0'
|
||||
delete_workflow_pattern:
|
||||
description: 'Name or filename of the workflow (if not set, all workflows are targeted)'
|
||||
required: false
|
||||
default: 'Build and Release YTLitePlus'
|
||||
delete_workflow_by_state_pattern:
|
||||
description: 'Filter workflows by state: active, deleted, disabled_fork, disabled_inactivity, disabled_manually'
|
||||
required: true
|
||||
default: "ALL"
|
||||
type: choice
|
||||
options:
|
||||
- "ALL"
|
||||
- active
|
||||
- deleted
|
||||
- disabled_inactivity
|
||||
- disabled_manually
|
||||
delete_run_by_conclusion_pattern:
|
||||
description: 'Remove runs based on conclusion: action_required, cancelled, failure, skipped, success'
|
||||
required: true
|
||||
default: "ALL"
|
||||
type: choice
|
||||
options:
|
||||
- "ALL"
|
||||
- "Unsuccessful: action_required,cancelled,failure,skipped"
|
||||
- action_required
|
||||
- cancelled
|
||||
- failure
|
||||
- skipped
|
||||
- success
|
||||
dry_run:
|
||||
description: 'Logs simulated changes, no deletions are performed'
|
||||
required: false
|
||||
|
||||
jobs:
|
||||
del_runs:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
actions: write
|
||||
contents: read
|
||||
steps:
|
||||
- name: Delete workflow runs
|
||||
uses: Mattraks/delete-workflow-runs@v2
|
||||
with:
|
||||
token: ${{ github.token }}
|
||||
repository: ${{ github.repository }}
|
||||
retain_days: ${{ github.event.inputs.days }}
|
||||
keep_minimum_runs: ${{ github.event.inputs.minimum_runs }}
|
||||
delete_workflow_pattern: ${{ github.event.inputs.delete_workflow_pattern }}
|
||||
delete_workflow_by_state_pattern: ${{ github.event.inputs.delete_workflow_by_state_pattern }}
|
||||
delete_run_by_conclusion_pattern: >-
|
||||
${{
|
||||
startsWith(github.event.inputs.delete_run_by_conclusion_pattern, 'Unsuccessful:')
|
||||
&& 'action_required,cancelled,failure,skipped'
|
||||
|| github.event.inputs.delete_run_by_conclusion_pattern
|
||||
}}
|
||||
dry_run: ${{ github.event.inputs.dry_run }}
|
||||
35
.github/workflows/update-submodules.yml
vendored
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
name: Update Submodules
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
- cron: '0 0 * * *'
|
||||
|
||||
jobs:
|
||||
update-submodules:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4.1.7
|
||||
|
||||
- name: Set up Git
|
||||
run: |
|
||||
git config --global user.email "actions@github.com"
|
||||
git config --global user.name "GitHub Actions"
|
||||
|
||||
- name: Update submodules
|
||||
run: |
|
||||
git submodule update --init --recursive --remote
|
||||
git add .
|
||||
git commit -m "updated submodules"
|
||||
git push origin
|
||||
continue-on-error: true
|
||||
|
||||
- name: Check exit code
|
||||
run: |
|
||||
exit_code=$?
|
||||
if [ $exit_code -ne 0 ]; then
|
||||
echo "Submodule update failed with exit code $exit_code"
|
||||
exit 1
|
||||
fi
|
||||
6
.gitignore
vendored
|
|
@ -2,6 +2,6 @@
|
|||
.theos/
|
||||
packages/
|
||||
tmp/
|
||||
Tweaks/Cercube/*
|
||||
!Tweaks/Cercube/.gitkeep
|
||||
Resources/
|
||||
Tweaks/YTLite/*
|
||||
!Tweaks/YTLite/.gitkeep
|
||||
Resources/
|
||||
|
|
|
|||
73
.gitmodules
vendored
|
|
@ -1,45 +1,60 @@
|
|||
[submodule "Tweaks/YTUHD"]
|
||||
path = Tweaks/YTUHD
|
||||
url = https://github.com/PoomSmart/YTUHD.git
|
||||
[submodule "Tweaks/YouPiP"]
|
||||
path = Tweaks/YouPiP
|
||||
url = https://github.com/PoomSmart/YouPiP.git
|
||||
[submodule "Tweaks/Return-YouTube-Dislikes"]
|
||||
path = Tweaks/Return-YouTube-Dislikes
|
||||
url = https://github.com/PoomSmart/Return-YouTube-Dislikes.git
|
||||
[submodule "Tweaks/YouTubeHeader"]
|
||||
path = Tweaks/YouTubeHeader
|
||||
url = https://github.com/PoomSmart/YouTubeHeader.git
|
||||
[submodule "Tweaks/Alderis"]
|
||||
path = Tweaks/Alderis
|
||||
url = https://github.com/qnblackcat/Alderis.git
|
||||
url = https://github.com/hbang/Alderis.git
|
||||
[submodule "Tweaks/PSHeader"]
|
||||
path = Tweaks/PSHeader
|
||||
url = https://github.com/PoomSmart/PSHeader.git
|
||||
[submodule "Tweaks/YTABConfig"]
|
||||
path = Tweaks/YTABConfig
|
||||
url = https://github.com/PoomSmart/YTABConfig.git
|
||||
[submodule "Tweaks/YouMute"]
|
||||
path = Tweaks/YouMute
|
||||
url = https://github.com/PoomSmart/YouMute.git
|
||||
[submodule "Tweaks/RemoteLog"]
|
||||
path = Tweaks/RemoteLog
|
||||
url = https://github.com/Muirey03/RemoteLog.git
|
||||
[submodule "Tweaks/FLEX"]
|
||||
path = Tweaks/FLEX
|
||||
url = https://github.com/qnblackcat/FLEX-Classes.git
|
||||
[submodule "Tweaks/iSponsorBlock"]
|
||||
path = Tweaks/iSponsorBlock
|
||||
url = https://github.com/Galactic-Dev/iSponsorBlock.git
|
||||
[submodule "Extensions"]
|
||||
path = Extensions
|
||||
url = https://github.com/CokePokes/YoutubeExtensions.git
|
||||
[submodule "Tweaks/YTHoldForSpeed"]
|
||||
path = Tweaks/YTHoldForSpeed
|
||||
url = https://github.com/arichorn/YTHoldForSpeed.git
|
||||
url = https://github.com/arichornloverALT/YTHoldForSpeed.git
|
||||
[submodule "Tweaks/DontEatMyContent"]
|
||||
path = Tweaks/DontEatMyContent
|
||||
url = https://github.com/therealFoxster/DontEatMyContent.git
|
||||
[submodule "Tweaks/YTLite"]
|
||||
path = Tweaks/YTLite
|
||||
url = https://github.com/dayanch96/YTLite.git
|
||||
[submodule "Extensions"]
|
||||
path = Extensions
|
||||
url = https://github.com/CokePokes/YoutubeExtensions.git
|
||||
[submodule "Tweaks/YTVideoOverlay"]
|
||||
path = Tweaks/YTVideoOverlay
|
||||
url = https://github.com/arichornloverALT/YTVideoOverlay.git
|
||||
[submodule "Tweaks/protobuf"]
|
||||
path = Tweaks/protobuf
|
||||
url = https://github.com/protocolbuffers/protobuf.git
|
||||
[submodule "Tweaks/YouTubeHeader"]
|
||||
path = Tweaks/YouTubeHeader
|
||||
url = https://github.com/PoomSmart/YouTubeHeader.git
|
||||
[submodule "Tweaks/YouPiP"]
|
||||
path = Tweaks/YouPiP
|
||||
url = https://github.com/PoomSmart/YouPiP
|
||||
[submodule "Tweaks/YTABConfig"]
|
||||
path = Tweaks/YTABConfig
|
||||
url = https://github.com/PoomSmart/YTABConfig
|
||||
[submodule "Tweaks/YTUHD"]
|
||||
path = Tweaks/YTUHD
|
||||
url = https://github.com/PoomSmart/YTUHD
|
||||
[submodule "Tweaks/YouGroupSettings"]
|
||||
path = Tweaks/YouGroupSettings
|
||||
url = https://github.com/PoomSmart/YouGroupSettings
|
||||
[submodule "Tweaks/YouMute"]
|
||||
path = Tweaks/YouMute
|
||||
url = https://github.com/PoomSmart/YouMute
|
||||
[submodule "Tweaks/YouQuality"]
|
||||
path = Tweaks/YouQuality
|
||||
url = https://github.com/PoomSmart/YouQuality
|
||||
[submodule "Tweaks/Return-YouTube-Dislikes"]
|
||||
path = Tweaks/Return-YouTube-Dislikes
|
||||
url = https://github.com/arichornloverALT/Return-YouTube-Dislikes.git
|
||||
[submodule "Tweaks/YTHeaders"]
|
||||
path = Tweaks/YTHeaders
|
||||
url = https://github.com/therealFoxster/YTHeaders
|
||||
[submodule "Tweaks/YouTimeStamp"]
|
||||
path = Tweaks/YouTimeStamp
|
||||
url = https://github.com/arichornloverALT/YouTimeStamp.git
|
||||
[submodule "Tweaks/YouLoop"]
|
||||
path = Tweaks/YouLoop
|
||||
url = https://github.com/bhackel/YouLoop
|
||||
|
|
|
|||
1
Extensions
Submodule
|
|
@ -0,0 +1 @@
|
|||
Subproject commit a68d70883d297fcc6669429dfd1439848e96e411
|
||||
2
Extensions/.gitattributes
vendored
|
|
@ -1,2 +0,0 @@
|
|||
# Auto detect text files and perform LF normalization
|
||||
* text=auto
|
||||
1
Extensions/.gitignore
vendored
|
|
@ -1 +0,0 @@
|
|||
.DS_Store
|
||||
|
|
@ -1,333 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>files</key>
|
||||
<dict>
|
||||
<key>Info.plist</key>
|
||||
<data>
|
||||
5KaPBsMVTGZfcc05Od8nGW6/EyQ=
|
||||
</data>
|
||||
<key>_locales/en/messages.json</key>
|
||||
<data>
|
||||
8cPkszxzYFSjhRWsf34A0AiHaPM=
|
||||
</data>
|
||||
<key>background.js</key>
|
||||
<data>
|
||||
tClFxbnUm0L65Qj+Qu8Fk9asL2o=
|
||||
</data>
|
||||
<key>content.js</key>
|
||||
<data>
|
||||
a6o4B4PMlrIOBXlniU2NS4D9SJE=
|
||||
</data>
|
||||
<key>embedded.mobileprovision</key>
|
||||
<data>
|
||||
dVGLS8Qpu/eCI1J5VCu9IfYq3Z4=
|
||||
</data>
|
||||
<key>images/cat_1.0.gif</key>
|
||||
<data>
|
||||
DtSTnvB7wRt647kM1b38KLfDfXA=
|
||||
</data>
|
||||
<key>images/icon-128.png</key>
|
||||
<data>
|
||||
rYa1lv1LgkO3fkP9h6gRSjlQgqk=
|
||||
</data>
|
||||
<key>images/icon-256.png</key>
|
||||
<data>
|
||||
05xbekvTg28KsH9RRIKQRL8tqQs=
|
||||
</data>
|
||||
<key>images/icon-48.png</key>
|
||||
<data>
|
||||
BWUZe8raKzOzA2cDWIYFoBPxxw8=
|
||||
</data>
|
||||
<key>images/icon-512.png</key>
|
||||
<data>
|
||||
shzpVHJMsAu4q820Fb+YzByiFhc=
|
||||
</data>
|
||||
<key>images/icon-64.png</key>
|
||||
<data>
|
||||
HZC4YIb4ZLg4lpjNAKFqSaka6r0=
|
||||
</data>
|
||||
<key>images/icon-96.png</key>
|
||||
<data>
|
||||
IPAOd1HfCtCI7ybhVhwA5TU/BZ8=
|
||||
</data>
|
||||
<key>images/toolbar-icon-16.png</key>
|
||||
<data>
|
||||
Bkb2Cy8VYIcWl7wFZ2HcWZcCoyA=
|
||||
</data>
|
||||
<key>images/toolbar-icon-19.png</key>
|
||||
<data>
|
||||
XLkdODJ73CVbwn/1LCAsfB6scPg=
|
||||
</data>
|
||||
<key>images/toolbar-icon-32.png</key>
|
||||
<data>
|
||||
0cQgf/z3urGdzsmtmc2Wnim1+lg=
|
||||
</data>
|
||||
<key>images/toolbar-icon-38.png</key>
|
||||
<data>
|
||||
eas7Tl3/r2JMZf6nK84ZjoBJrZo=
|
||||
</data>
|
||||
<key>images/toolbar-icon-48.png</key>
|
||||
<data>
|
||||
fxyz1xgkIR877Cf/7uYNUqXrxoM=
|
||||
</data>
|
||||
<key>images/toolbar-icon-72.png</key>
|
||||
<data>
|
||||
pHL3CJwjPY30T9sFvvcA2qlraBw=
|
||||
</data>
|
||||
<key>manifest.json</key>
|
||||
<data>
|
||||
b37QyqMYHlvlfOjbvJLOKeAM5Y4=
|
||||
</data>
|
||||
<key>popup.css</key>
|
||||
<data>
|
||||
mXR2qQxu+ceMOItNpc4aImux5wY=
|
||||
</data>
|
||||
<key>popup.html</key>
|
||||
<data>
|
||||
zTk6QImmvcZjMYLQY8ek+cqSEWg=
|
||||
</data>
|
||||
<key>popup.js</key>
|
||||
<data>
|
||||
grmSQBg1aRbGzHHjd3TWHS/HbOY=
|
||||
</data>
|
||||
</dict>
|
||||
<key>files2</key>
|
||||
<dict>
|
||||
<key>_locales/en/messages.json</key>
|
||||
<dict>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
4pOaVgBrOGGIoI81XdEOZidIyW9peYtz85HIYX7d1QE=
|
||||
</data>
|
||||
</dict>
|
||||
<key>background.js</key>
|
||||
<dict>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
2S7ONYvdkGsryEavyrR7nMCTwsjNGqMV2BSWIxWLSYg=
|
||||
</data>
|
||||
</dict>
|
||||
<key>content.js</key>
|
||||
<dict>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
9CYz6yZ8bRI2JRzRwnn4DOGuPuy2GSsOudXSZU6s1po=
|
||||
</data>
|
||||
</dict>
|
||||
<key>embedded.mobileprovision</key>
|
||||
<dict>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
4TQyzTTz0VYUTM0IXf2PMSufVEkzd4WlPWbwKMyfKfQ=
|
||||
</data>
|
||||
</dict>
|
||||
<key>images/cat_1.0.gif</key>
|
||||
<dict>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
65Ql3FhfivRMoMifbuY5KK8I/1rZx/Zmmwsx1La4OyI=
|
||||
</data>
|
||||
</dict>
|
||||
<key>images/icon-128.png</key>
|
||||
<dict>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
TV8I8bcVP9rAnVA4AJRAWtkJveIenMpYsd/7+rsMLzo=
|
||||
</data>
|
||||
</dict>
|
||||
<key>images/icon-256.png</key>
|
||||
<dict>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
kksdsW0Y1svz0bT0i3UzQGBmBDxJGr2eTCZmaqTS+XM=
|
||||
</data>
|
||||
</dict>
|
||||
<key>images/icon-48.png</key>
|
||||
<dict>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
mBNPpZ78p0eH4WsNdF/EXw/sFHq5f8PqERARlLulYbY=
|
||||
</data>
|
||||
</dict>
|
||||
<key>images/icon-512.png</key>
|
||||
<dict>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
waQn18oFc3GbhXXm2HEn6xFQk3HKehp9crGljWAMsGQ=
|
||||
</data>
|
||||
</dict>
|
||||
<key>images/icon-64.png</key>
|
||||
<dict>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
CJwxajQk49Cd0RfR22yEPO6pjDbg+Aa4Ocxi+812CiM=
|
||||
</data>
|
||||
</dict>
|
||||
<key>images/icon-96.png</key>
|
||||
<dict>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
zuzRjCepizxOWXh9ftCPth38GUxy1Ea/4zS3dw19OXo=
|
||||
</data>
|
||||
</dict>
|
||||
<key>images/toolbar-icon-16.png</key>
|
||||
<dict>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
xmXH4YHb+Pq/YuC1e8JLIun93LuM3+/8MvB3r8oTKls=
|
||||
</data>
|
||||
</dict>
|
||||
<key>images/toolbar-icon-19.png</key>
|
||||
<dict>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
qSX/1Ux4BOUIhixJK5NkvyTomLwp0yISfsQ97uF8/5g=
|
||||
</data>
|
||||
</dict>
|
||||
<key>images/toolbar-icon-32.png</key>
|
||||
<dict>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
pGDg4NcSdD5EQaZgaiwxNosbSEXmZnpRc79RfitKc1c=
|
||||
</data>
|
||||
</dict>
|
||||
<key>images/toolbar-icon-38.png</key>
|
||||
<dict>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
BUU3dwrCSvNOiFkBQWdPkrwASjUvxSxbizW+Izt3LBA=
|
||||
</data>
|
||||
</dict>
|
||||
<key>images/toolbar-icon-48.png</key>
|
||||
<dict>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
JLZV5da+fZkfw0m2KfMqHSixWBCJvZoUNlt3la7gm54=
|
||||
</data>
|
||||
</dict>
|
||||
<key>images/toolbar-icon-72.png</key>
|
||||
<dict>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
TwM7A1Bkuv4C3SWorFNwG+w38mWo3TaMtglLdDXxcFw=
|
||||
</data>
|
||||
</dict>
|
||||
<key>manifest.json</key>
|
||||
<dict>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
+nWdvS9ap7YzpjqKSWsGUHP5K2irkTGozQX/tI4WrYc=
|
||||
</data>
|
||||
</dict>
|
||||
<key>popup.css</key>
|
||||
<dict>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
LIfF3an8mzKIMD8PDhKILnrZBhxxSTzoZQKyRiyWuB0=
|
||||
</data>
|
||||
</dict>
|
||||
<key>popup.html</key>
|
||||
<dict>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
9Ro1fCC5Meq0eSNrYab7V3uc4tNvmwRqMsCb1757M6Q=
|
||||
</data>
|
||||
</dict>
|
||||
<key>popup.js</key>
|
||||
<dict>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
ruLXAORE+vDoLKPGBSkl7hnXv8V+ZexCoX3KvJyHxBk=
|
||||
</data>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>rules</key>
|
||||
<dict>
|
||||
<key>^.*</key>
|
||||
<true/>
|
||||
<key>^.*\.lproj/</key>
|
||||
<dict>
|
||||
<key>optional</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>1000</real>
|
||||
</dict>
|
||||
<key>^.*\.lproj/locversion.plist$</key>
|
||||
<dict>
|
||||
<key>omit</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>1100</real>
|
||||
</dict>
|
||||
<key>^Base\.lproj/</key>
|
||||
<dict>
|
||||
<key>weight</key>
|
||||
<real>1010</real>
|
||||
</dict>
|
||||
<key>^version.plist$</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>rules2</key>
|
||||
<dict>
|
||||
<key>.*\.dSYM($|/)</key>
|
||||
<dict>
|
||||
<key>weight</key>
|
||||
<real>11</real>
|
||||
</dict>
|
||||
<key>^(.*/)?\.DS_Store$</key>
|
||||
<dict>
|
||||
<key>omit</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>2000</real>
|
||||
</dict>
|
||||
<key>^.*</key>
|
||||
<true/>
|
||||
<key>^.*\.lproj/</key>
|
||||
<dict>
|
||||
<key>optional</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>1000</real>
|
||||
</dict>
|
||||
<key>^.*\.lproj/locversion.plist$</key>
|
||||
<dict>
|
||||
<key>omit</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>1100</real>
|
||||
</dict>
|
||||
<key>^Base\.lproj/</key>
|
||||
<dict>
|
||||
<key>weight</key>
|
||||
<real>1010</real>
|
||||
</dict>
|
||||
<key>^Info\.plist$</key>
|
||||
<dict>
|
||||
<key>omit</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>20</real>
|
||||
</dict>
|
||||
<key>^PkgInfo$</key>
|
||||
<dict>
|
||||
<key>omit</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>20</real>
|
||||
</dict>
|
||||
<key>^embedded\.provisionprofile$</key>
|
||||
<dict>
|
||||
<key>weight</key>
|
||||
<real>20</real>
|
||||
</dict>
|
||||
<key>^version\.plist$</key>
|
||||
<dict>
|
||||
<key>weight</key>
|
||||
<real>20</real>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
{
|
||||
"extension_name": {
|
||||
"message": "OpenYoutube",
|
||||
"description": "The display name for the extension."
|
||||
},
|
||||
"extension_description": {
|
||||
"message": "Displays an Open in Youtube alert for sideloaded YT",
|
||||
"description": "Description of what the extension does."
|
||||
}
|
||||
}
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
browser.runtime.onMessage.addListener((request, sender, sendResponse) => {
|
||||
console.log("Received request: ", request);
|
||||
|
||||
if (request.greeting === "hello")
|
||||
sendResponse({ farewell: "goodbye" });
|
||||
});
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
browser.runtime.sendMessage({ greeting: "hello" }).then((response) => {
|
||||
console.log("Received response: ", response);
|
||||
});
|
||||
|
||||
browser.runtime.onMessage.addListener((request, sender, sendResponse) => {
|
||||
console.log("Received request: ", request);
|
||||
});
|
||||
|
||||
function afterNavigate() {
|
||||
if ('/watch' === location.pathname) {
|
||||
window.location.href = `youtube://${window.location.pathname.slice(1)}${
|
||||
window.location.search
|
||||
}${window.location.hash}`;
|
||||
}
|
||||
}
|
||||
(document.body || document.documentElement).addEventListener('transitionend',
|
||||
function(/*TransitionEvent*/ event) {
|
||||
if (event.propertyName === 'width' && event.target.id === 'progress') {
|
||||
afterNavigate();
|
||||
}
|
||||
}, true);
|
||||
// After page load
|
||||
afterNavigate();
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 110 KiB |
|
Before Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 42 KiB |
|
Before Width: | Height: | Size: 3.4 KiB |
|
Before Width: | Height: | Size: 128 KiB |
|
Before Width: | Height: | Size: 5 KiB |
|
Before Width: | Height: | Size: 9.5 KiB |
|
Before Width: | Height: | Size: 454 B |
|
Before Width: | Height: | Size: 569 B |
|
Before Width: | Height: | Size: 919 B |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 2.1 KiB |
|
|
@ -1,40 +0,0 @@
|
|||
{
|
||||
"manifest_version": 2,
|
||||
"default_locale": "en",
|
||||
|
||||
"name": "__MSG_extension_name__",
|
||||
"description": "__MSG_extension_description__",
|
||||
"version": "1.0",
|
||||
|
||||
"icons": {
|
||||
"48": "images/icon-48.png",
|
||||
"96": "images/icon-96.png",
|
||||
"128": "images/icon-128.png",
|
||||
"256": "images/icon-256.png",
|
||||
"512": "images/icon-512.png"
|
||||
},
|
||||
|
||||
"background": {
|
||||
"scripts": [ "background.js" ],
|
||||
"persistent": false
|
||||
},
|
||||
|
||||
"content_scripts": [{
|
||||
"js": [ "content.js" ],
|
||||
"matches": [ "*://*.youtube.com/*" ]
|
||||
}],
|
||||
|
||||
"browser_action": {
|
||||
"default_popup": "popup.html",
|
||||
"default_icon": {
|
||||
"16": "images/toolbar-icon-16.png",
|
||||
"19": "images/toolbar-icon-19.png",
|
||||
"32": "images/toolbar-icon-32.png",
|
||||
"38": "images/toolbar-icon-38.png",
|
||||
"48": "images/toolbar-icon-48.png",
|
||||
"72": "images/toolbar-icon-72.png"
|
||||
}
|
||||
},
|
||||
|
||||
"permissions": [ ]
|
||||
}
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
:root {
|
||||
color-scheme: light dark;
|
||||
}
|
||||
|
||||
body {
|
||||
width: 100px;
|
||||
padding: 10px;
|
||||
|
||||
font-family: system-ui;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
/* Dark Mode styles go here. */
|
||||
}
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<link rel="stylesheet" href="popup.css">
|
||||
<script type="module" src="popup.js"></script>
|
||||
</head>
|
||||
<style>
|
||||
body {
|
||||
background-image:url('images/cat_1.0.gif');
|
||||
background-size:100%;
|
||||
background-repeat: repeat-y;
|
||||
background-attachment: fixed;
|
||||
height:100%;
|
||||
width:100%;
|
||||
}
|
||||
</style>
|
||||
<body>
|
||||
<strong>Extension made by @CokePokes</strong>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -1 +0,0 @@
|
|||
console.log("Hello World!", browser);
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
# YoutubeExtensions
|
||||
appex extensions for sideloaded YT
|
||||
|
||||
|
||||
What is this?
|
||||
|
||||
These plugins enable "Open In" for sideloaded Youtube without any need to download other Opener apps /Shortcuts.
|
||||
|
||||
|
||||
How to install:
|
||||
|
||||
1. Download the .appex files here
|
||||
2. Unzip Youtube.ipa & copy them to /Payload/Youtube.app/Plugins
|
||||
3. Compress Payload folder & rename .zip to .ipa
|
||||
4. Sign & Install onto device
|
||||
5. Open YouTube once & then open Safari to enable the iOS 15 safari plugin [prompted always allow - do it]
|
||||
6. Press the Share icon in Safari scroll app list > More > Enable Youtube
|
||||
|
||||
Done!
|
||||
|
||||
|
Before Width: | Height: | Size: 1.2 KiB |
|
|
@ -1,157 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>files</key>
|
||||
<dict>
|
||||
<key>Base.lproj/MainInterface.storyboardc/Info.plist</key>
|
||||
<data>
|
||||
Bgt43YuQd48Y7NBkKAH/I1Nd+7Q=
|
||||
</data>
|
||||
<key>Base.lproj/MainInterface.storyboardc/UIViewController-j1y-V4-xli.nib</key>
|
||||
<data>
|
||||
t/rVTMy59WLCl0e0ydlT2JlJKIs=
|
||||
</data>
|
||||
<key>Base.lproj/MainInterface.storyboardc/j1y-V4-xli-view-wbc-yd-nQP.nib</key>
|
||||
<data>
|
||||
56s4vIzFNrq5HEvB3Mr6qnqVRFg=
|
||||
</data>
|
||||
<key>Info.plist</key>
|
||||
<data>
|
||||
7+n2S5sS/Ngeoe21gJMc6iC6+ac=
|
||||
</data>
|
||||
<key>embedded.mobileprovision</key>
|
||||
<data>
|
||||
dVGLS8Qpu/eCI1J5VCu9IfYq3Z4=
|
||||
</data>
|
||||
<key>icon.png</key>
|
||||
<data>
|
||||
/pip+c1EETgjhxNcOhgiyQxxzyU=
|
||||
</data>
|
||||
</dict>
|
||||
<key>files2</key>
|
||||
<dict>
|
||||
<key>Base.lproj/MainInterface.storyboardc/Info.plist</key>
|
||||
<dict>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
Qnp5pVqL/lRCSEISDYZs1VBLxfcEnfpOzHg6WgcgLgk=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Base.lproj/MainInterface.storyboardc/UIViewController-j1y-V4-xli.nib</key>
|
||||
<dict>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
VpQww1vK2BoM0RIaiw/B/8JZ3kp5Pks5bM8Sjtjju9w=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Base.lproj/MainInterface.storyboardc/j1y-V4-xli-view-wbc-yd-nQP.nib</key>
|
||||
<dict>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
C87FO0vFlvhG8vp7+3v+EcR9kbOeu9v+mDLy/iU+6e8=
|
||||
</data>
|
||||
</dict>
|
||||
<key>embedded.mobileprovision</key>
|
||||
<dict>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
4TQyzTTz0VYUTM0IXf2PMSufVEkzd4WlPWbwKMyfKfQ=
|
||||
</data>
|
||||
</dict>
|
||||
<key>icon.png</key>
|
||||
<dict>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
mfufJ0CJyFLUpRnLC8q8awHkGqmWeQtRDgF5EBXKUQs=
|
||||
</data>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>rules</key>
|
||||
<dict>
|
||||
<key>^.*</key>
|
||||
<true/>
|
||||
<key>^.*\.lproj/</key>
|
||||
<dict>
|
||||
<key>optional</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>1000</real>
|
||||
</dict>
|
||||
<key>^.*\.lproj/locversion.plist$</key>
|
||||
<dict>
|
||||
<key>omit</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>1100</real>
|
||||
</dict>
|
||||
<key>^Base\.lproj/</key>
|
||||
<dict>
|
||||
<key>weight</key>
|
||||
<real>1010</real>
|
||||
</dict>
|
||||
<key>^version.plist$</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>rules2</key>
|
||||
<dict>
|
||||
<key>.*\.dSYM($|/)</key>
|
||||
<dict>
|
||||
<key>weight</key>
|
||||
<real>11</real>
|
||||
</dict>
|
||||
<key>^(.*/)?\.DS_Store$</key>
|
||||
<dict>
|
||||
<key>omit</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>2000</real>
|
||||
</dict>
|
||||
<key>^.*</key>
|
||||
<true/>
|
||||
<key>^.*\.lproj/</key>
|
||||
<dict>
|
||||
<key>optional</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>1000</real>
|
||||
</dict>
|
||||
<key>^.*\.lproj/locversion.plist$</key>
|
||||
<dict>
|
||||
<key>omit</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>1100</real>
|
||||
</dict>
|
||||
<key>^Base\.lproj/</key>
|
||||
<dict>
|
||||
<key>weight</key>
|
||||
<real>1010</real>
|
||||
</dict>
|
||||
<key>^Info\.plist$</key>
|
||||
<dict>
|
||||
<key>omit</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>20</real>
|
||||
</dict>
|
||||
<key>^PkgInfo$</key>
|
||||
<dict>
|
||||
<key>omit</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>20</real>
|
||||
</dict>
|
||||
<key>^embedded\.provisionprofile$</key>
|
||||
<dict>
|
||||
<key>weight</key>
|
||||
<real>20</real>
|
||||
</dict>
|
||||
<key>^version\.plist$</key>
|
||||
<dict>
|
||||
<key>weight</key>
|
||||
<real>20</real>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
var GetURL = function() {};
|
||||
GetURL.prototype = {
|
||||
run: function(arguments) {
|
||||
arguments.completionFunction({"URL": document.URL});
|
||||
}
|
||||
};
|
||||
var ExtensionPreprocessingJS = new GetURL;
|
||||
165
Header.h
|
|
@ -1,165 +0,0 @@
|
|||
#import "Tweaks/YouTubeHeader/YTPlayerViewController.h" // Header.h
|
||||
#import "Tweaks/YouTubeHeader/YTQTMButton.h" // Header.h
|
||||
#import <UIKit/UIKit.h>
|
||||
#import <Foundation/Foundation.h>
|
||||
#import <CaptainHook/CaptainHook.h>
|
||||
#import <objc/runtime.h>
|
||||
#import <dlfcn.h>
|
||||
#import <sys/utsname.h>
|
||||
#import <substrate.h>
|
||||
#import <rootless.h>
|
||||
#import "Tweaks/FLEX/FLEX.h"
|
||||
#import "Tweaks/YouTubeHeader/YTVideoQualitySwitchOriginalController.h"
|
||||
#import "Tweaks/YouTubeHeader/YTPlayerViewController.h"
|
||||
#import "Tweaks/YouTubeHeader/YTWatchController.h"
|
||||
#import "Tweaks/YouTubeHeader/YTIGuideResponse.h"
|
||||
#import "Tweaks/YouTubeHeader/YTIGuideResponseSupportedRenderers.h"
|
||||
#import "Tweaks/YouTubeHeader/YTIPivotBarSupportedRenderers.h"
|
||||
#import "Tweaks/YouTubeHeader/YTIPivotBarRenderer.h"
|
||||
#import "Tweaks/YouTubeHeader/YTIBrowseRequest.h"
|
||||
#import "Tweaks/YouTubeHeader/YTCommonColorPalette.h"
|
||||
#import "Tweaks/YouTubeHeader/ASCollectionView.h"
|
||||
#import "Tweaks/YouTubeHeader/YTPlayerOverlay.h"
|
||||
#import "Tweaks/YouTubeHeader/YTPlayerOverlayProvider.h"
|
||||
#import "Tweaks/YouTubeHeader/YTReelWatchPlaybackOverlayView.h"
|
||||
#import "Tweaks/YouTubeHeader/YTReelPlayerBottomButton.h"
|
||||
#import "Tweaks/YouTubeHeader/YTReelPlayerViewController.h"
|
||||
#import "Tweaks/YouTubeHeader/YTAlertView.h"
|
||||
#import "Tweaks/YouTubeHeader/YTISectionListRenderer.h"
|
||||
#import "Tweaks/YouTubeHeader/YTPivotBarItemView.h"
|
||||
|
||||
#define LOC(x) [tweakBundle localizedStringForKey:x value:nil table:nil]
|
||||
#define YT_BUNDLE_ID @"com.google.ios.youtube"
|
||||
#define YT_NAME @"YouTube"
|
||||
|
||||
// YTSpeed
|
||||
@interface YTVarispeedSwitchControllerOption : NSObject
|
||||
- (id)initWithTitle:(id)title rate:(float)rate;
|
||||
@end
|
||||
|
||||
@interface MLHAMQueuePlayer : NSObject
|
||||
@property id playerEventCenter;
|
||||
@property id delegate;
|
||||
- (void)setRate:(float)rate;
|
||||
- (void)internalSetRate;
|
||||
@end
|
||||
|
||||
@interface MLPlayerStickySettings : NSObject
|
||||
- (void)setRate:(float)rate;
|
||||
@end
|
||||
|
||||
@interface MLPlayerEventCenter : NSObject
|
||||
- (void)broadcastRateChange:(float)rate;
|
||||
@end
|
||||
|
||||
@interface HAMPlayerInternal : NSObject
|
||||
- (void)setRate:(float)rate;
|
||||
@end
|
||||
|
||||
// YTLitePlus
|
||||
@interface YTChipCloudCell : UIView
|
||||
@end
|
||||
|
||||
@interface YTPlayabilityResolutionUserActionUIController : NSObject // Skips content warning before playing *some videos - @PoomSmart
|
||||
- (void)confirmAlertDidPressConfirm;
|
||||
@end
|
||||
|
||||
@interface YTMainAppControlsOverlayView: UIView
|
||||
@end
|
||||
|
||||
@interface YTTransportControlsButtonView : UIView
|
||||
@end
|
||||
|
||||
@interface YTPlaybackButton : UIControl
|
||||
@end
|
||||
|
||||
@interface YTSegmentableInlinePlayerBarView
|
||||
@property (nonatomic, assign, readwrite) BOOL enableSnapToChapter;
|
||||
@end
|
||||
|
||||
// Cercube button in Nav bar
|
||||
@interface MDCButton : UIButton
|
||||
@end
|
||||
|
||||
@interface YTRightNavigationButtons : UIView
|
||||
@property (nonatomic, strong, readwrite) MDCButton *cercubeButton;
|
||||
@property YTQTMButton *notificationButton;
|
||||
@property YTQTMButton *sponsorBlockButton;
|
||||
@end
|
||||
|
||||
// IAmYouTube
|
||||
@interface SSOConfiguration : NSObject
|
||||
@end
|
||||
|
||||
// BigYTMiniPlayer
|
||||
@interface YTMainAppVideoPlayerOverlayView : UIView
|
||||
- (UIViewController *)_viewControllerForAncestor;
|
||||
@end
|
||||
|
||||
@interface YTWatchMiniBarView : UIView
|
||||
@end
|
||||
|
||||
// YTAutoFullscreen
|
||||
@interface YTPlayerViewController (YTAFS)
|
||||
- (void)autoFullscreen;
|
||||
@end
|
||||
|
||||
// YTNoShorts
|
||||
@interface ELMCellNode
|
||||
@end
|
||||
|
||||
@interface _ASCollectionViewCell : UICollectionViewCell
|
||||
- (id)node;
|
||||
@end
|
||||
|
||||
@interface YTAsyncCollectionView : UICollectionView
|
||||
- (void)removeShortsCellAtIndexPath:(NSIndexPath *)indexPath;
|
||||
@end
|
||||
|
||||
@interface YTPlayerView : UIView
|
||||
- (void)downloadVideo;
|
||||
@end
|
||||
|
||||
|
||||
// App Theme
|
||||
@interface YCHLiveChatView : UIView
|
||||
@end
|
||||
|
||||
@interface YTFullscreenEngagementOverlayView : UIView
|
||||
@end
|
||||
|
||||
@interface YTRelatedVideosView : UIView
|
||||
@end
|
||||
|
||||
@interface ELMView: UIView
|
||||
@end
|
||||
|
||||
@interface ASWAppSwitcherCollectionViewCell: UIView
|
||||
@end
|
||||
|
||||
@interface ASScrollView : UIView
|
||||
@end
|
||||
|
||||
@interface UIKeyboardLayoutStar : UIView
|
||||
@end
|
||||
|
||||
@interface UIKeyboardDockView : UIView
|
||||
@end
|
||||
|
||||
@interface _ASDisplayView : UIView
|
||||
@end
|
||||
|
||||
@interface YTCommentDetailHeaderCell : UIView
|
||||
@end
|
||||
|
||||
@interface SponsorBlockSettingsController : UITableViewController
|
||||
@end
|
||||
|
||||
@interface SponsorBlockViewController : UIViewController
|
||||
@end
|
||||
|
||||
@interface UICandidateViewController : UIViewController
|
||||
@end
|
||||
|
||||
@interface UIPredictionViewController : UIViewController
|
||||
@end
|
||||
40
Makefile
|
|
@ -1,18 +1,21 @@
|
|||
TARGET = iphone:clang:15.5:14.0
|
||||
TARGET = iphone:clang:16.5:14.0
|
||||
YTLitePlus_USE_FISHHOOK = 0
|
||||
ARCHS = arm64
|
||||
MODULES = jailed
|
||||
FINALPACKAGE = 1
|
||||
CODESIGN_IPA = 0
|
||||
PACKAGE_VERSION = 18.23.3-2.0
|
||||
PACKAGE_VERSION = X.X.X-X.X
|
||||
|
||||
TWEAK_NAME = YTLitePlus
|
||||
DISPLAY_NAME = YouTube
|
||||
BUNDLE_ID = com.google.ios.youtube
|
||||
|
||||
EXTRA_CFLAGS := $(addprefix -I,$(shell find Tweaks/FLEX -name '*.h' -exec dirname {} \;))
|
||||
EXTRA_CFLAGS := $(addprefix -I,$(shell find Tweaks/FLEX -name '*.h' -exec dirname {} \;)) -I$(THEOS_PROJECT_DIR)/Tweaks
|
||||
|
||||
YTLitePlus_INJECT_DYLIBS = .theos/obj/libcolorpicker.dylib .theos/obj/iSponsorBlock.dylib .theos/obj/YTUHD.dylib .theos/obj/YouPiP.dylib .theos/obj/YouTubeDislikesReturn.dylib .theos/obj/YTABConfig.dylib .theos/obj/YouMute.dylib .theos/obj/DontEatMyContent.dylib .theos/obj/YTHoldForSpeed.dylib .theos/obj/YTLite.dylib
|
||||
# Allow YouTubeHeader to be accessible using #include <...>
|
||||
export ADDITIONAL_CFLAGS = -I$(THEOS_PROJECT_DIR)/Tweaks
|
||||
|
||||
YTLitePlus_INJECT_DYLIBS = Tweaks/YTLite/var/jb/Library/MobileSubstrate/DynamicLibraries/YTLite.dylib .theos/obj/libcolorpicker.dylib .theos/obj/iSponsorBlock.dylib .theos/obj/YTUHD.dylib .theos/obj/YouPiP.dylib .theos/obj/YouTubeDislikesReturn.dylib .theos/obj/YTABConfig.dylib .theos/obj/YouMute.dylib .theos/obj/DontEatMyContent.dylib .theos/obj/YTHoldForSpeed.dylib .theos/obj/YTVideoOverlay.dylib .theos/obj/YouGroupSettings.dylib .theos/obj/YouQuality.dylib .theos/obj/YouTimeStamp.dylib .theos/obj/YouLoop.dylib
|
||||
YTLitePlus_FILES = YTLitePlus.xm $(shell find Source -name '*.xm' -o -name '*.x' -o -name '*.m') $(shell find Tweaks/FLEX -type f \( -iname \*.c -o -iname \*.m -o -iname \*.mm \))
|
||||
YTLitePlus_IPA = ./tmp/Payload/YouTube.app
|
||||
YTLitePlus_CFLAGS = -fobjc-arc -Wno-deprecated-declarations -Wno-unsupported-availability-guard -Wno-unused-but-set-variable -DTWEAK_VERSION=$(PACKAGE_VERSION) $(EXTRA_CFLAGS)
|
||||
|
|
@ -20,13 +23,18 @@ YTLitePlus_FRAMEWORKS = UIKit Security
|
|||
|
||||
include $(THEOS)/makefiles/common.mk
|
||||
include $(THEOS_MAKE_PATH)/tweak.mk
|
||||
SUBPROJECTS += Tweaks/Alderis Tweaks/iSponsorBlock Tweaks/YTUHD Tweaks/YouPiP Tweaks/Return-YouTube-Dislikes Tweaks/YTABConfig Tweaks/YouMute Tweaks/DontEatMyContent Tweaks/YTLite Tweaks/YTHoldForSpeed
|
||||
SUBPROJECTS += Tweaks/Alderis Tweaks/iSponsorBlock Tweaks/YTUHD Tweaks/YouPiP Tweaks/Return-YouTube-Dislikes Tweaks/YTABConfig Tweaks/YouMute Tweaks/DontEatMyContent Tweaks/YTHoldForSpeed Tweaks/YTVideoOverlay Tweaks/YouQuality Tweaks/YouTimeStamp Tweaks/YouGroupSettings Tweaks/YouLoop
|
||||
include $(THEOS_MAKE_PATH)/aggregate.mk
|
||||
|
||||
YTLITE_PATH = Tweaks/YTLite
|
||||
YTLITE_VERSION := 5.0.1
|
||||
YTLITE_DEB = $(YTLITE_PATH)/com.dvntm.ytlite_$(YTLITE_VERSION)_iphoneos-arm64.deb
|
||||
YTLITE_DYLIB = $(YTLITE_PATH)/var/jb/Library/MobileSubstrate/DynamicLibraries/YTLite.dylib
|
||||
YTLITE_BUNDLE = $(YTLITE_PATH)/var/jb/Library/Application\ Support/YTLite.bundle
|
||||
before-package::
|
||||
@echo -e "==> \033[1mMoving tweak's bundle to Resources/...\033[0m"
|
||||
@mkdir -p Resources/Frameworks/Alderis.framework && find .theos/obj/install/Library/Frameworks/Alderis.framework -maxdepth 1 -type f -exec cp {} Resources/Frameworks/Alderis.framework/ \;
|
||||
@cp -R Tweaks/YTLite/layout/Library/Application\ Support/YTLite.bundle Resources/
|
||||
@cp -R Tweaks/YTLite/var/jb/Library/Application\ Support/YTLite.bundle Resources/
|
||||
@cp -R Tweaks/YTUHD/layout/Library/Application\ Support/YTUHD.bundle Resources/
|
||||
@cp -R Tweaks/YouPiP/layout/Library/Application\ Support/YouPiP.bundle Resources/
|
||||
@cp -R Tweaks/Return-YouTube-Dislikes/layout/Library/Application\ Support/RYD.bundle Resources/
|
||||
|
|
@ -35,8 +43,26 @@ before-package::
|
|||
@cp -R Tweaks/DontEatMyContent/layout/Library/Application\ Support/DontEatMyContent.bundle Resources/
|
||||
@cp -R Tweaks/YTHoldForSpeed/layout/Library/Application\ Support/YTHoldForSpeed.bundle Resources/
|
||||
@cp -R Tweaks/iSponsorBlock/layout/Library/Application\ Support/iSponsorBlock.bundle Resources/
|
||||
@cp -R Tweaks/YTVideoOverlay/layout/Library/Application\ Support/YTVideoOverlay.bundle Resources/
|
||||
@cp -R Tweaks/YouQuality/layout/Library/Application\ Support/YouQuality.bundle Resources/
|
||||
@cp -R Tweaks/YouTimeStamp/layout/Library/Application\ Support/YouTimeStamp.bundle Resources/
|
||||
@cp -R Tweaks/YouLoop/layout/Library/Application\ Support/YouLoop.bundle Resources/
|
||||
@cp -R lang/YTLitePlus.bundle Resources/
|
||||
@echo -e "==> \033[1mChanging the installation path of dylibs...\033[0m"
|
||||
@ldid -r .theos/obj/iSponsorBlock.dylib && install_name_tool -change /usr/lib/libcolorpicker.dylib @rpath/libcolorpicker.dylib .theos/obj/iSponsorBlock.dylib
|
||||
@codesign --remove-signature .theos/obj/libcolorpicker.dylib && install_name_tool -change /Library/Frameworks/Alderis.framework/Alderis @rpath/Alderis.framework/Alderis .theos/obj/libcolorpicker.dylib
|
||||
|
||||
|
||||
internal-clean::
|
||||
@rm -rf $(YTLITE_PATH)/*
|
||||
|
||||
before-all::
|
||||
@if [[ ! -f $(YTLITE_DEB) ]]; then \
|
||||
rm -rf $(YTLITE_PATH)/*; \
|
||||
$(PRINT_FORMAT_BLUE) "Downloading YTLite"; \
|
||||
echo "YTLITE_VERSION: $(YTLITE_VERSION)"; \
|
||||
curl -s -L "https://github.com/dayanch96/YTLite/releases/download/v$(YTLITE_VERSION)/com.dvntm.ytlite_$(YTLITE_VERSION)_iphoneos-arm64.deb" -o $(YTLITE_DEB); \
|
||||
tar -xf $(YTLITE_DEB) -C $(YTLITE_PATH); tar -xf $(YTLITE_PATH)/data.tar* -C $(YTLITE_PATH); \
|
||||
if [[ ! -f $(YTLITE_DYLIB) || ! -d $(YTLITE_BUNDLE) ]]; then \
|
||||
$(PRINT_FORMAT_ERROR) "Failed to extract YTLite"; exit 1; \
|
||||
fi; \
|
||||
fi
|
||||
|
|
|
|||
361
README.md
|
|
@ -1,296 +1,151 @@
|
|||
## YTLite with more features!
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
<p align="center">
|
||||
<img src="https://img.shields.io/badge/Platform-iOS%20%7C%20iPadOS%2014.0%2B-yellow" alt="Badge"/>
|
||||
<img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Banner.png" alt="YTLitePlus Banner" />
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://github.com/Balackburn/YTLitePlus/releases/latest"><img src="https://custom-icon-badges.demolab.com/github/v/release/arichorn/YTLitePlus?color=brightgreen&label=Latest%20release" alt="Badge"></img></a>
|
||||
<a href="https://github.com/Balackburn/YTLitePlus/releases/latest"><img src="https://img.shields.io/github/downloads/arichorn/YTLitePlus/total?label=Download" alt="Badge"></img></a>
|
||||
<a href="https://github.com/Balackburn/YTLitePlus/commit"><img src="https://custom-icon-badges.demolab.com/github/last-commit/arichorn/YTLitePlus?logo=history&logoColor=white&label=Last commit" alt="Badge"></img></a>
|
||||
</p>
|
||||
<a href="https://tinyurl.com/YTLiteAltstore"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Buttons/Altstore.png" height="70"></a>
|
||||
|
||||
<a href="https://balackburn.github.io/YTLitePlus"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Buttons/Website.png" height="70"></a>
|
||||
|
||||
|
||||
<p align="center">
|
||||
<img src="https://img.shields.io/github/stars/arichorn/YTLitePlus?style=social" alt="Badge"/>
|
||||
<img src="https://img.shields.io/github/forks/arichorn/YTLitePlus?style=social" alt="Badge"/>
|
||||
<a href="https://github.com/qnblackcat/uYouPlus#support-the-developers"><img src="https://img.shields.io/badge/-Support-lightgrey?style=social&logo=paypal" alt="Badge"></img></a>
|
||||
</p>
|
||||

|
||||
[](https://developer.apple.com/iphone/index.action)
|
||||
<a href="https://github.com/YTLitePlus/YTLitePlus/commit"><img src="https://custom-icon-badges.demolab.com/github/last-commit/Balackburn/YTLitePlus?style=flat&color=black&labelColor=black&logo=history&logoColor=white&label=Last commit" alt="Badge"></img></a>
|
||||
<a href="https://github.com/YTLitePlus/YTLitePlus/releases/latest"><img src="https://custom-icon-badges.demolab.com/github/v/release/Balackburn/YTLitePlus?labelColor=black&style=flat&color=black&label=Latest%20release" alt="Badge"></img></a>
|
||||
|
||||
# Table of Contents
|
||||
<a href="#credits"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Buttons/TableOfContents/Credits.png" width="170"></a>
|
||||
|
||||
* [Credits](#credits)
|
||||
* [Features](#features)
|
||||
* [Known issues](#known-issues)
|
||||
* [Download (IPA)](#download-ipa)
|
||||
* [Support the developers!](#support-the-developers)
|
||||
* [Building (optional)](#building-optional)
|
||||
<a href="#features"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Buttons/TableOfContents/Features.png" width="170"></a>
|
||||
|
||||
<a href="#altstore"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Buttons/TableOfContents/Altstore.png" width="170"></a>
|
||||
|
||||
<a href="#donations"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Buttons/TableOfContents/Donations.png" width="170"></a>
|
||||
|
||||
<a href="#building"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Buttons/TableOfContents/Building.png" width="170"></a>
|
||||
|
||||
# Credits
|
||||
|
||||
<table id='maintainer credit'>
|
||||
Special thanks to these developer(s) for maintaining and improving YTLitePlus (@qnblackcat is the OG dev)
|
||||
<tr>
|
||||
<td id='arichorn'>
|
||||
<a href='https://github.com/arichorn'>
|
||||
<img src='https://github.com/arichorn.png' width='140px;'>
|
||||
</a>
|
||||
<h4 align='center'><a href='https://github.com/arichorn'>arichorn</a></h4>
|
||||
</td>
|
||||
<td id='qnblackcat'>
|
||||
<a href='https://github.com/qnblackcat'>
|
||||
<img src='https://github.com/qnblackcat.png' width='140px;'>
|
||||
</a>
|
||||
<h4 align='center'><a href='https://github.com/qnblackcat'>Qnblackcat</a></h4>
|
||||
</td>
|
||||
<td id='dayanch96'>
|
||||
<a href='https://github.com/dayanch96'>
|
||||
<img src='https://github.com/dayanch96.png' width='140px;'>
|
||||
</a>
|
||||
<h4 align='center'><a href='https://github.com/dayanch96'>dayanch96</a></h4>
|
||||
</td>
|
||||
<td id='ssuesskind'>
|
||||
<a href='https://github.com/ssuesskind'>
|
||||
<img src='https://github.com/ssuesskind.png' width='140px;'>
|
||||
</a>
|
||||
<h4 align='center'><a href='https://github.com/ssuesskind'>ssuesskind</a></h4>
|
||||
</td>
|
||||
|
||||
<table id='credit'>
|
||||
Special thanks to all the developers who have contributed to CercubePlus/YTLitePlus!
|
||||
|
||||
(YTLite is an original tweak by dayanch96 @dayanch96)
|
||||
<tr>
|
||||
<td id='PoomSmart'>
|
||||
<a href='https://github.com/PoomSmart'>
|
||||
<img src='https://github.com/PoomSmart.png' width='140px;'>
|
||||
</a>
|
||||
<h4 align='center'><a href='https://github.com/PoomSmart'>PoomSmart</a></h4>
|
||||
</td>
|
||||
<td id='miro92'>
|
||||
<a href='https://github.com/MiRO92'>
|
||||
<img src='https://github.com/MiRO92.png' width='140px;'>
|
||||
</a>
|
||||
<h4 align='center'><a href='https://twitter.com/miro92'>MiRO92</a></h4>
|
||||
</td>
|
||||
<td id='level3tjg'>
|
||||
<a href='https://github.com/level3tjg'>
|
||||
<img src='https://github.com/level3tjg.png' width='140px;'>
|
||||
</a>
|
||||
<h4 align='center'><a href='https://twitter.com/level3tjg'>level3tjg</a></h4>
|
||||
</td>
|
||||
<td id='bandarHL'>
|
||||
<a href='https://github.com/BandarHL'>
|
||||
<img src='https://github.com/BandarHL.png' width='140px;'>
|
||||
</a>
|
||||
<h4 align='center'><a href='https://twitter.com/bandarhl'>BandarHelal</a></h4>
|
||||
</td>
|
||||
<td id='galactic-dev'>
|
||||
<a href='https://github.com/Galactic-Dev'>
|
||||
<img src='https://github.com/Galactic-Dev.png' width='140px;'>
|
||||
</a>
|
||||
<h4 align='center'><a href='https://twitter.com/dev_galactic'>galactic</a></h4>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td id='hbang'>
|
||||
<a href='https://github.com/hbang'>
|
||||
<img src='https://github.com/hbang.png' width='140px;'>
|
||||
</a>
|
||||
<h4 align='center'><a href='https://twitter.com/hashbang'>HASHBANG</a></h4>
|
||||
</td>
|
||||
<td id='lyvendia'>
|
||||
<a href='https://github.com/Lyvendia'>
|
||||
<img src='https://github.com/Lyvendia.png' width='140px;'>
|
||||
</a>
|
||||
<h4 align='center'><a href='https://github.com/Lyvendia'>Lyvendia</a></h4>
|
||||
</td>
|
||||
<td id='foxster'>
|
||||
<a href='https://github.com/therealFoxster'>
|
||||
<img src='https://github.com/therealFoxster.png' width='140px;'>
|
||||
</a>
|
||||
<h4 align='center'><a href='https://twitter.com/therealFoxster'>Foxster</a></h4>
|
||||
</td>
|
||||
<td id='julioverne'>
|
||||
<a href='https://github.com/julioverne'>
|
||||
<img src='https://github.com/julioverne.png' width='140px;'>
|
||||
</a>
|
||||
<h4 align='center'><a href='https://twitter.com/ijulioverne'>julioverne</a></h4>
|
||||
</td>
|
||||
<td id='ichitaso'>
|
||||
<a href='https://github.com/ichitaso'>
|
||||
<img src='https://github.com/ichitaso.png' width='140px;'>
|
||||
</a>
|
||||
<h4 align='center'><a href='https://twitter.com/ichitaso'>ichitaso</a></h4>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td id='ahmed-bafkir'>
|
||||
<a href='https://github.com/AhmedBafkir'>
|
||||
<img src='https://github.com/AhmedBafkir.png' width='140px;'>
|
||||
</a>
|
||||
<h4 align='center'><a href='https://twitter.com/Peaceful_0'>Ahmed Bafkir</a></h4>
|
||||
</td>
|
||||
<td id='cokepokes'>
|
||||
<a href='https://github.com/CokePokes'>
|
||||
<img src='https://github.com/CokePokes.png' width='140px;'>
|
||||
</a>
|
||||
<h4 align='center'><a href='https://twitter.com/cokepokes'>CokePokes</a></h4>
|
||||
</td>
|
||||
<td id='isnackable'>
|
||||
<a href='https://github.com/ISnackable'>
|
||||
<img src='https://github.com/ISnackable.png' width='140px;'>
|
||||
</a>
|
||||
<h4 align='center'><a href='https://isnackable.me/'>Tommy Teo</a></h4>
|
||||
</td>
|
||||
<td id='SKIEDs'>
|
||||
<a href='https://github.com/SKEIDs'>
|
||||
<img src='https://github.com/SKEIDs.png' width='140px;'>
|
||||
</a>
|
||||
<h4 align='center'><a href='https://github.com/SKEIDs'>SKIEDs</a></h4>
|
||||
</td>
|
||||
<td id='theos-team'>
|
||||
<a href='https://github.com/theos/theos'>
|
||||
<img src='https://github.com/theos.png' width='140px;'>
|
||||
</a>
|
||||
<h4 align='center'><a href='https://theos.dev'>theos</a></h4>
|
||||
</td>
|
||||
</tr>
|
||||
<table>
|
||||
<tr>
|
||||
<td align="center"><a href="https://github.com/dayanch96"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/dayanch96.png" width="100px;" alt="dayanch96"/></a></td>
|
||||
<td align="center"><a href="https://github.com/Balackburn"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/Balackburn.png" width="100px;" alt="Balackburn"/></a></td>
|
||||
<td align="center"><a href="https://github.com/arichornloverALT"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/arichornloverALT.png" width="100px;" alt="arichornloverALT"/></a></td>
|
||||
<td align="center"><a href="https://github.com/PoomSmart"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/PoomSmart.png" width="100px;" alt="PoomSmart"/></a></td>
|
||||
<td align="center"><a href="https://github.com/qnblackcat"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/qnblackcat.png" width="100px;" alt="qnblackcat"/></a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://github.com/SKEIDs"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/SKEIDs.png" width="100px;" alt="SKEIDs"/></a></td>
|
||||
<td align="center"><a href="https://github.com/asdfzxcvbn"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/asdfzxcvbn.png" width="100px;" alt="asdfzxcvbn"/></a></td>
|
||||
<td align="center"><a href="https://github.com/matt911"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/matt911.png" width="100px;" alt="matt911"/></a></td>
|
||||
<td align="center"><a href="https://github.com/bhackel"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/bhackel.png" width="100px;" alt="bhackel"/></a></td>
|
||||
<td align="center"><a href="https://github.com/AlexInABox"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/AlexInABox.png" width="100px;" alt="AlexInABox"/></a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://github.com/Glenta"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/Glenta.png" width="100px;" alt="Glenta"/></a></td>
|
||||
<td align="center"><a href="https://github.com/gototheskinny"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/gototheskinny.png" width="100px;" alt="gototheskinny"/></a></td>
|
||||
<td align="center"><a href="https://github.com/MrAlucardDante"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/MrAlucardDante.png" width="100px;" alt="MrAlucardDante"/></a></td>
|
||||
<td align="center"><a href="https://github.com/Galactic-Dev"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/Galactic-Dev.png" width="100px;" alt="Galactic-Dev"/></a></td>
|
||||
<td align="center"><a href="https://github.com/AhmedBafkir"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/AhmedBafkir.png" width="100px;" alt="AhmedBafkir"/></a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://github.com/MiRO92"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/MiRO92.png" width="100px;" alt="MiRO92"/></a></td>
|
||||
<td align="center"><a href="https://github.com/ichitaso"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/ichitaso.png" width="100px;" alt="ichitaso"/></a></td>
|
||||
<td align="center"><a href="https://github.com/Deci8BelioS"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/Deci8BelioS.png" width="100px;" alt="Deci8BelioS"/></a></td>
|
||||
<td align="center"><a href="https://github.com/julioverne"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/julioverne.png" width="100px;" alt="julioverne"/></a></td>
|
||||
<td align="center"><a href="https://github.com/therealFoxster"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/therealFoxster.png" width="100px;" alt="therealFoxster"/></a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://github.com/Lyvendia"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/Lyvendia.png" width="100px;" alt="Lyvendia"/></a></td>
|
||||
<td align="center"><a href="https://github.com/ssuesskind"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/ssuesskind.png" width="100px;" alt="ssuesskind"/></a></td>
|
||||
<td align="center"><a href="https://github.com/hbang"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/hbang.png" width="100px;" alt="hbang"/></a></td>
|
||||
<td align="center"><a href="https://github.com/level3tjg"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/level3tjg.png" width="100px;" alt="level3tjg"/></a></td>
|
||||
<td align="center"><a href="https://github.com/zSaaiq"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/zSaaiq.png" width="100px;" alt="zSaaiq"/></a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://github.com/ISnackable"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/ISnackable.png" width="100px;" alt="ISnackable"/></a></td>
|
||||
<td align="center"><a href="https://github.com/VictorxD70"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/VictorxD70.png" width="100px;" alt="VictorxD70"/></a></td>
|
||||
<td align="center"><a href="https://github.com/Macleykun"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/Macleykun.png" width="100px;" alt="Macleykun"/></a></td>
|
||||
<td align="center"><a href="https://github.com/BandarHL"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/BandarHL.png" width="100px;" alt="BandarHL"/></a></td>
|
||||
<td align="center"><a href="https://github.com/CokePokes"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/CokePokes.png" width="100px;" alt="CokePokes"/></a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
# Features
|
||||
|
||||
1. **YTLite:**
|
||||
1. **YTLite**: A tweak that enhances the YouTube experience by removing ads, enabling background playback and offering over 60 customization options.
|
||||
|
||||
- Block all advertisements & Enable background playback.
|
||||
2. **YTUHD**: This tweak unlocks 1440p (2K) and 2160p (4K) resolutions in the iOS YouTube app.
|
||||
|
||||
- Set default player quality on WiFi & Celullar.
|
||||
3. **YouPiP**: Enables native Picture-in-Picture feature for videos in the YouTube app.
|
||||
|
||||
- Save videos in high resolution, save videos as audio-only, save public playlists (beta).
|
||||
4. **YTABConfig**: Adds a new section named "A/B" in the YouTube app settings where all features can be toggled freely by the user.
|
||||
|
||||
- And many more...
|
||||
5. **YouMute**: Allows users to mute/unmute videos directly in the YouTube Video Player.
|
||||
|
||||
2. **iSponsorBlock:** Skips annoying sponsor ads inside videos. iSponsorBlock is based on [SponsorBlock engine](https://sponsor.ajay.app/). Basically, this is the iOS version of the SponsorBlock extension.
|
||||
6. **DontEatMyContent**: Prevents the notch/Dynamic Island from covering 2:1 video content in YouTube.
|
||||
|
||||
3. **YouPiP:** enable YouTube's **native PiP**. More options are in YouTube Settings => General.
|
||||
7. **Return YouTube Dislikes**: Brings back Dislike counts under YouTube videos using ReturnYoutubeDislike's API.
|
||||
|
||||
4. **YTUHD:** unlock VP9 codec and in effect, enables video quality of 2K and 4K. You can configure YTUHD in YouTube's Settings - Video quality preferences.
|
||||
8. **iSponsorBlock**: Skips annoying sponsor ads inside YouTube videos.
|
||||
|
||||
5. **YouTube Dislike Return:** brings back Dislike counts under YouTube videos using **ReturnYoutubeDislike**'s API.
|
||||
9. **YouRememberCaption**: Makes YouTube remember your video caption setting.
|
||||
|
||||
<details>
|
||||
<summary>and many more...!</summary>
|
||||
10. **YTNoTracking**: An iOS YouTube Tweak that disables Tracking Parameters in the YouTube App.
|
||||
|
||||
6. **YTClassicVideoQuality:** since YouTube v16.xx, you need one more step to change the video quality. YTClassicVideoQuality brings back the old video quality selector, which is a lot better than the new one.
|
||||
12. **YTNoCheckLocalNetWor**k: Blocks the Local Network permission popup in YouTube.
|
||||
|
||||
7. **YTNoHoverCards:** offer an option to enable/disable the annoying suggested videos show up at the end of the videos.
|
||||
13. **BigYTMiniPlayer**: Jailbreak tweak that makes the miniplayer in youtube easier to see.
|
||||
|
||||
8. **YTABGoodies:** allow you to disable some YouTube A/B testing features. It is a combination of several tweaks, such as:
|
||||
14. **YTSpeed**: Adds 2.25x to 5x playback speed options in the YouTube video player.
|
||||
|
||||
- YouAreThere: disable "Video paused. Continue watching?" popup in the YouTube app when you play a long video.
|
||||
15. **YTHoldForSpeed**: Allows you to quickly toggle between a selected video playback speed by tapping and holding on the video player in the YouTube application.
|
||||
|
||||
- YouRememberCaption: make YouTube remember your video caption setting (if not already).
|
||||
16. **YTVideoOverlay**: A helper tweak that adds buttons on the YouTube video overlay.
|
||||
|
||||
- YTNoCheckLocalNetwork: block the Local Network permission popup.
|
||||
17. **YouQuality**: Enables you to view and change video quality in YouTube faster.
|
||||
|
||||
9. **NOYTPremium:** remove YouTube Premium upsell alerts.
|
||||
18. **YTNoModernUI**: This tweak changes and removes some newer UI elements from the YouTube app such as some rounded buttons, old progress bar, and old buffer bar.
|
||||
|
||||
10. **YTSpeed**: a toggleable tweak to add 2.25x, 2.5x, 2.75x, 3x, 3.25x, 3.5x, 3.75x, 4x & 5x playback speed options in the video player.
|
||||
19. **OLEDDarkmode**: Replace official Youtube darkmode with a true OLED darkmode.
|
||||
|
||||
11. **YTMiniplayerEnabler**: enable Miniplayer for all YouTube videos.
|
||||
20. **OLDDarkmode**: Replace new official Youtube darkmode with old (grey) Youtube darkmode.
|
||||
|
||||
12. **DontEatMyContent**: prevent the notch/Dynamic Island from munching on 2:1 video content in YouTube.
|
||||
21. **LowContrastMode**: Makes the UI interface look dimmer to make it easier on the eyes. (App Compatibility: v17.33.2-v17.38.10)
|
||||
|
||||
13. **YTShortsProgress**: always enable progress bar and scrubbing in YouTube Shorts (iPhone only).
|
||||
|
||||
14. **YTABConfig**: allow user to control over YouTube A/B testing flags.
|
||||
|
||||
15. **YouMute**: Mute/unmute videos in the YouTube Video Player directly.
|
||||
|
||||
16. **LowContrastMode**: makes the YouTube Interface Low Contrast as possible to make it easier on the eyes.
|
||||
|
||||
any many more...
|
||||
</details>
|
||||
|
||||
# Known issues
|
||||
|
||||
1. **YTLite**:
|
||||
|
||||
- Hide Cast button is not working. (Workaround: Hide cast button in CercubePlus settings)
|
||||
|
||||
- The Updated Dark Mode in the YouTube App is not Present or Working in YTLite v5.3.13 & older versions
|
||||
|
||||
2. **LowContrastMode**: this tweak doesn't work everywhere with every ui element on the YouTube App.
|
||||
|
||||
3. **YTUHD**: [Stuttering on 4K videos](https://github.com/qnblackcat/uYouPlus/issues/6).
|
||||
|
||||
4. **YouPiP** (iOS 14.0 - 14.4.2): due to Apple's fault, you may encounter the *speedup-bug* as described [here](https://drive.google.com/file/d/1NKdv1fr_KRWgD8nhkMDfG2eLBnbdeVtX/view?usp=sharing). The bug also happens when you try to play multi-sources of sound at the same time. Enable **LegacyPiP** is a workaround. Keep in mind that LegacyPiP also removes UHD quality and breaks YouTube Autoplay next. Use it at your own risk!
|
||||
|
||||
5. **Not a bug**:
|
||||
|
||||
- The app won't be able to receive push notifications if you use a free developer account to sideload it.
|
||||
|
||||
- It's impossible to fix deep-link (a.k.a Open in the YouTube app). However, you can use this [Shortcuts](https://shortcutsgallery.com/shortcuts/open-in-youtube/) as a workaround (tested on iOS 14). **Credit:** RandomAccessMemories#5025
|
||||
|
||||
# Download (IPA)
|
||||
|
||||
- **CercubePlus** (or you can call it YTLite+) requires iOS & iPadOS 14.0 and later. The latest version of **CercubePlus** can be found in the [Release tab](https://github.com/Balackburn/YTLitePlus/releases/latest).
|
||||
|
||||
- For AltStore user: [Open in AltStore (v18.18.2-5.3.11)](https://tinyurl.com/5a5jn7ra) - It will take a while to install because AltStore needs to download the IPA first.
|
||||
|
||||
<details>
|
||||
<summary>Alternative Download</summary>
|
||||
# AltStore
|
||||
|
||||
[Open in AltStore (v18.14.1-5.3.11-F2)](https://tinyurl.com/4exxknn8) - This is the **v18.14.1-5.3.11-F2** release. only use this to resolve the OLED/OLD Dark Mode Problem.
|
||||
<a href="https://tinyurl.com/YTLiteAltstore"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Buttons/Altstore/Altstore.png" width="200"></a>
|
||||
|
||||
|
||||
</details>
|
||||
<a href="https://altsource.by.lao.sb/browse/?source=https://raw.githubusercontent.com/Balackburn/YTLitePlusAltstore/main/apps.json"><img src="https://github.com/YTLitePlus/Assets/blob/main/Github/Buttons/Altstore/altsource.by.lao.sb.png" width="200"></a>
|
||||
|
||||
|
||||
- Version info: _(May 9 2023)_
|
||||
<a href="https://raw.githubusercontent.com/Balackburn/YTLitePlusAltstore/main/apps.json"><img src="https://github.com/YTLitePlus/Assets/blob/main/Github/Buttons/Altstore/URL.png" width="200"></a>
|
||||
|
||||
<details>
|
||||
<summary>Expand!</summary>
|
||||
# Donations
|
||||
<a href="https://buymeacoffee.com/dayanch96"><img src="https://github.com/YTLitePlus/Assets/blob/main/Github/Buttons/Donations/Dayanch96(buymeacoffee).png" width="200"></a>
|
||||
|
||||
<a href="https://github.com/sponsors/dayanch96"><img src="https://github.com/YTLitePlus/Assets/blob/main/Github/Buttons/Donations/Dayanch96(Github).png" width="200"></a>
|
||||
|
||||
| **Tweaks/App** | **Developer** | **Version** | **Open source** |
|
||||
| - | - | :-: | :-: |
|
||||
| **YouTube** | Google Inc | 18.21.3 | ✖︎ |
|
||||
| **YTLite** | Majd Alfhaily | 5.3.11 | ✖︎ |
|
||||
| **Open in YouTube** | [CokePokes](https://github.com/CokePokes/) | 1.2 | ✖︎ |
|
||||
| **YTNoShorts** | [MiRO92](https://twitter.com/miro92) | 1.0.2 | [✔︎](https://github.com/MiRO92/YTNoShorts) |
|
||||
| **iSponsorBlock** | [Galactic-Dev](https://github.com/Galactic-Dev) | 1.0-15 | [✔︎](https://github.com/Galactic-Dev/iSponsorBlock) |
|
||||
| **BigYTMiniPlayer** | [Galactic-Dev](https://github.com/Galactic-Dev) | 1.0-1 | [✔︎](https://github.com/Galactic-Dev/BigYTMiniPlayer) |
|
||||
| **YTNoHoverCards** | [level3tjg](https://twitter.com/level3tjg) | 0.0.3 | [✔︎](https://github.com/level3tjg/YTNoHoverCards) |
|
||||
| **YTMiniplayerEnabler** | [level3tjg](https://twitter.com/level3tjg) | 0.0.2 | [✔︎](https://github.com/level3tjg/YTMiniplayerEnabler) |
|
||||
| **DontEatMyContent** | [therealFoxster](https://github.com/therealFoxster) | 1.0.6 | [✔︎](https://github.com/therealFoxster/DontEatMyContent) |
|
||||
| **LowContrastMode** | arichorn | 1.2.3 | [✔︎](https://github.com/arichorn/LowContrastMode) |
|
||||
| **YTUHD** | PoomSmart | 1.4.0 | [✔︎](https://github.com/PoomSmart/YTUHD) |
|
||||
| **YouPiP** | PoomSmart | 1.7.19-2 | [✔︎](https://github.com/PoomSmart/YouPiP) |
|
||||
| **YouMute** | PoomSmart | 1.1.1-1 | [✔︎](https://github.com/PoomSmart/YouMute) |
|
||||
| **YTABConfig** | PoomSmart | 1.5.0-1 | [✔︎](https://github.com/PoomSmart/YTABConfig) |
|
||||
| **IAmYouTube** | PoomSmart | 1.2.0 | [✔︎](https://github.com/PoomSmart/IAmYouTube) |
|
||||
| **YTReExplore** | PoomSmart | 1.0.2 | [✔︎](https://github.com/PoomSmart/YTReExplore) |
|
||||
| **NoYTPremium** | PoomSmart | 1.0.4 | [✔︎](https://github.com/PoomSmart/NoYTPremium) |
|
||||
| **YTNoPaidPromo** | PoomSmart | 1.0.0 | [✔︎](https://github.com/PoomSmart/YTNoPaidPromo) |
|
||||
| **YTAutoFullScreen** | PoomSmart | 1.0.3 | [✔︎](https://github.com/PoomSmart/YTAutoFullScreen) |
|
||||
| **YTShortsProgress** | PoomSmart | 1.0.2 | [✔︎](https://github.com/PoomSmart/YTShortsProgress) |
|
||||
| **Return YouTube Dislike** | PoomSmart | 1.11.3 | [✔︎](https://github.com/PoomSmart/Return-YouTube-Dislikes) |
|
||||
<a href="https://ko-fi.com/dayanch966"><img src="https://github.com/YTLitePlus/Assets/blob/main/Github/Buttons/Donations/Dayanch96(ko-fi).png" width="200"></a>
|
||||
|
||||
<a href="https://www.paypal.com/paypalme/poomsmart"><img src="https://github.com/YTLitePlus/Assets/blob/main/Github/Buttons/Donations/Poomsmart.png" width="200"></a>
|
||||
|
||||
</details>
|
||||
<a href="https://www.paypal.com/paypalme/DBrett684"><img src="https://github.com/YTLitePlus/Assets/blob/main/Github/Buttons/Donations/Galactic-dev(Paypal).png" width="200"></a>
|
||||
|
||||
<a href="https://venmo.com/u/DavidBrett"><img src="https://github.com/YTLitePlus/Assets/blob/main/Github/Buttons/Donations/Galactic-dev(Venmo).png?raw=true" width="200"></a>
|
||||
|
||||
# Support the developers
|
||||
- [**MiRO92**](https://twitter.com/miro92): https://github.com/MiRO92/uYou-for-YouTube#support
|
||||
- [**level3tjg**](https://twitter.com/level3tjg): https://ko-fi.com/level3tjg
|
||||
- [**BandarHL**](https://twitter.com/bandarhl): https://www.paypal.com/paypalme/BandarHL
|
||||
- [**julioverne**](https://twitter.com/ijulioverne): https://www.patreon.com/julioverne
|
||||
- [**Galactic-dev**](https://twitter.com/dev_galactic):
|
||||
- Paypal: https://www.paypal.com/paypalme/DBrett684
|
||||
- Venmo: https://venmo.com/u/DavidBrett
|
||||
|
||||
# Building(s) (optional)
|
||||
<a href="https://github.com/MiRO92/uYou-for-YouTube#support"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Buttons/Donations/MIRO92.png" width="200"></a>
|
||||
|
||||
|
||||
<a href="https://www.paypal.com/paypalme/BandarHL"><img src="https://github.com/YTLitePlus/Assets/blob/main/Github/Buttons/Donations/BandarHL.png" width="200"></a>
|
||||
|
||||
|
||||
<a href="https://ko-fi.com/level3tjg"><img src="https://github.com/YTLitePlus/Assets/blob/main/Github/Buttons/Donations/level3tjg.png?raw=true" width="200"></a>
|
||||
|
||||
|
||||
<a href="https://www.patreon.com/julioverne"><img src="https://github.com/YTLitePlus/Assets/blob/main/Github/Buttons/Donations/julioverne.png?raw=true" width="200"></a>
|
||||
|
||||
# Building
|
||||
See [YTLitePlus/Building - Wiki](https://github.com/Balackburn/YTLitePlus/wiki/Building)
|
||||
or Another Version [uYouPlus/Building - Wiki](https://github.com/qnblackcat/uYouPlus/wiki/Building)
|
||||
|
|
|
|||
|
|
@ -1,42 +0,0 @@
|
|||
// Code has been disabled due to some compiling errors.
|
||||
|
||||
#import "../Header.h"
|
||||
|
||||
%ctor {
|
||||
void $YTPlayerView_downloadVideo_register();
|
||||
void $YTPlayerView_layoutSubviews$_register();
|
||||
}
|
||||
|
||||
#ifndef YTPLAYERVIEW_DOWNLOADVIDEO_REGISTER
|
||||
#ifndef YTPLAYERVIEW_LAYOUTSUBVIEWS_REGISTER
|
||||
#define YTPLAYERVIEW_DOWNLOADVIDEO_REGISTER
|
||||
#define YTPLAYERVIEW_LAYOUTSUBVIEWS_REGISTER
|
||||
|
||||
void $YTPlayerView_downloadVideo_register();
|
||||
void $YTPlayerView_layoutSubviews$_register();
|
||||
|
||||
#endif
|
||||
|
||||
// YouTube Video Downloading
|
||||
CHDeclareClass(YTPlayerView);
|
||||
|
||||
CHOptimizedMethod1(self, void, YTPlayerView, layoutSubviews, BOOL, arg1)
|
||||
{
|
||||
CHSuper1(YTPlayerView, layoutSubviews, arg1);
|
||||
CGRect downloadButtonFrame = CGRectMake(0, 0, 100, 50);
|
||||
UIButton *downloadButton = [[UIButton alloc] initWithFrame:downloadButtonFrame];
|
||||
[downloadButton setTitle:@"Download" forState:UIControlStateNormal];
|
||||
[downloadButton addTarget:self action:@selector(downloadVideo) forControlEvents:UIControlEventTouchUpInside];
|
||||
[self addSubview:downloadButton];
|
||||
}
|
||||
|
||||
CHOptimizedMethod0(self, void, YTPlayerView, downloadVideo)
|
||||
{
|
||||
NSString *videoUrlString = @"[Insert YouTube video URL here]";
|
||||
NSURL *videoUrl = [NSURL URLWithString:videoUrlString];
|
||||
NSData *videoData = [NSData dataWithContentsOfURL:videoUrl];
|
||||
|
||||
// Save the video data to a file
|
||||
NSString *filePath = @"[Insert file path here]";
|
||||
[videoData writeToFile:filePath atomically:YES];
|
||||
}
|
||||
1200
Source/Settings.xm
55
Source/SettingsKeys.h
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
#import "../YTLitePlus.h"
|
||||
|
||||
// Keys for "Copy Settings" button (for: YTLitePlus)
|
||||
// In alphabetical order for tweaks after YTLitePlus
|
||||
NSArray *NSUserDefaultsCopyKeys = @[
|
||||
// YTLitePlus - gathered using get_keys.py
|
||||
@"YTTapToSeek_enabled", @"alwaysShowRemainingTime_enabled", @"bigYTMiniPlayer_enabled", @"castConfirm_enabled",
|
||||
@"disableAccountSection_enabled", @"disableAmbientModeFullscreen_enabled",
|
||||
@"disableAmbientModePortrait_enabled", @"disableAutoplaySection_enabled", @"disableCollapseButton_enabled",
|
||||
@"disableEngagementOverlay_enabled", @"disableLiveChatSection_enabled",
|
||||
@"disableManageAllHistorySection_enabled", @"disableNotificationsSection_enabled",
|
||||
@"disablePrivacySection_enabled", @"disablePullToFull_enabled", @"disableRemainingTime_enabled",
|
||||
@"disableTryNewFeaturesSection_enabled", @"disableVideoQualityPreferencesSection_enabled",
|
||||
@"disableYourDataInYouTubeSection_enabled", @"enableSaveToButton_enabled", @"enableShareButton_enabled",
|
||||
@"enableVersionSpoofer_enabled", @"fixCasting_enabled", @"flex_enabled", @"fullscreenToTheRight_enabled",
|
||||
@"hideAutoplayMiniPreview_enabled", @"hideCastButton_enabled", @"hideHUD_enabled", @"hideHeatwaves_enabled",
|
||||
@"hideHomeTab_enabled", @"hidePreviewCommentSection_enabled", @"hideRightPanel_enabled",
|
||||
@"hideSpeedToast_enabled", @"hideSponsorBlockButton_enabled", @"hideVideoPlayerShadowOverlayButtons_enabled",
|
||||
@"iPadLayout_enabled", @"iPhoneLayout_enabled", @"inline_muted_playback_enabled", @"lowContrastMode_enabled",
|
||||
@"newSettingsUI_enabled", @"oledKeyBoard_enabled", @"playerGesturesHapticFeedback_enabled",
|
||||
@"playerGestures_enabled", @"seekAnywhere_enabled", @"switchCopyandPasteFunctionality_enabled",
|
||||
@"videoPlayerButton_enabled", @"ytNoModernUI_enabled", @"ytStartupAnimation_enabled",
|
||||
// DEMC - https://github.com/therealFoxster/DontEatMyContent/blob/master/Tweak.h
|
||||
@"DEMC_enabled", @"DEMC_colorViewsEnabled", @"DEMC_safeAreaConstant", @"DEMC_disableAmbientMode",
|
||||
@"DEMC_limitZoomToFill", @"DEMC_enableForAllVideos",
|
||||
// iSponsorBlock cannot be exported using this method - it is also being removed in v5
|
||||
// Return-YouTube-Dislike - https://github.com/PoomSmart/Return-YouTube-Dislikes/blob/main/TweakSettings.h
|
||||
@"RYD-ENABLED", @"RYD-VOTE-SUBMISSION", @"RYD-EXACT-LIKE-NUMBER", @"RYD-EXACT-NUMBER",
|
||||
// All YTVideoOverlay Tweaks - https://github.com/PoomSmart/YTVideoOverlay/blob/0fc6d29d1aa9e75f8c13d675daec9365f753d45e/Tweak.x#L28C1-L41C84
|
||||
@"YTVideoOverlay-YouLoop-Enabled", @"YTVideoOverlay-YouTimeStamp-Enabled", @"YTVideoOverlay-YouMute-Enabled",
|
||||
@"YTVideoOverlay-YouQuality-Enabled", @"YTVideoOverlay-YouLoop-Position", @"YTVideoOverlay-YouTimeStamp-Position",
|
||||
@"YTVideoOverlay-YouMute-Position", @"YTVideoOverlay-YouQuality-Position",
|
||||
// YouPiP - https://github.com/PoomSmart/YouPiP/blob/main/Header.h
|
||||
@"YouPiPPosition", @"CompatibilityModeKey", @"PiPActivationMethodKey", @"PiPActivationMethod2Key",
|
||||
@"NoMiniPlayerPiPKey", @"NonBackgroundableKey",
|
||||
// YTABConfig cannot be reasonably exported using this method
|
||||
// YTHoldForSpeed will be removed in v5
|
||||
// YouTube Plus / YTLite cannot be exported using this method
|
||||
// YTUHD - https://github.com/PoomSmart/YTUHD/blob/master/Header.h
|
||||
@"EnableVP9", @"AllVP9",
|
||||
// Useful YouTube Keys
|
||||
@"inline_muted_playback_enabled",
|
||||
];
|
||||
|
||||
|
||||
// Some default values to ignore when exporting settings
|
||||
NSDictionary *NSUserDefaultsCopyKeysDefaults = @{
|
||||
@"fixCasting_enabled": @1,
|
||||
@"inline_muted_playback_enabled": @5,
|
||||
@"newSettingsUI_enabled": @1,
|
||||
@"DEMC_safeAreaConstant": @21.5,
|
||||
@"RYD-ENABLED": @1,
|
||||
@"RYD-VOTE-SUBMISSION": @1,
|
||||
// Duplicate keys are not allowed in NSDictionary. If present, only the last one will be kept.
|
||||
};
|
||||
924
Source/Themes.xm
107
Source/VersionSpooferLite.xm
Normal file
|
|
@ -0,0 +1,107 @@
|
|||
#import "../YTLitePlus.h"
|
||||
|
||||
|
||||
static int appVersionSpoofer() {
|
||||
return [[NSUserDefaults standardUserDefaults] integerForKey:@"versionSpoofer"];
|
||||
}
|
||||
static BOOL version0() {
|
||||
return IsEnabled(@"enableVersionSpoofer_enabled") && appVersionSpoofer() == 0;
|
||||
}
|
||||
static BOOL version1() {
|
||||
return IsEnabled(@"enableVersionSpoofer_enabled") && appVersionSpoofer() == 1;
|
||||
}
|
||||
static BOOL version2() {
|
||||
return IsEnabled(@"enableVersionSpoofer_enabled") && appVersionSpoofer() == 2;
|
||||
}
|
||||
static BOOL version3() {
|
||||
return IsEnabled(@"enableVersionSpoofer_enabled") && appVersionSpoofer() == 3;
|
||||
}
|
||||
static BOOL version4() {
|
||||
return IsEnabled(@"enableVersionSpoofer_enabled") && appVersionSpoofer() == 4;
|
||||
}
|
||||
static BOOL version5() {
|
||||
return IsEnabled(@"enableVersionSpoofer_enabled") && appVersionSpoofer() == 5;
|
||||
}
|
||||
static BOOL version6() {
|
||||
return IsEnabled(@"enableVersionSpoofer_enabled") && appVersionSpoofer() == 6;
|
||||
}
|
||||
static BOOL version7() {
|
||||
return IsEnabled(@"enableVersionSpoofer_enabled") && appVersionSpoofer() == 7;
|
||||
}
|
||||
|
||||
%group gVersion0
|
||||
%hook YTVersionUtils // Last v18 App Version
|
||||
+ (NSString *)appVersion { return @"18.49.3"; }
|
||||
%end
|
||||
%end
|
||||
|
||||
%group gVersion1
|
||||
%hook YTVersionUtils // Brings back Library Tab
|
||||
+ (NSString *)appVersion { return @"18.34.5"; }
|
||||
%end
|
||||
%end
|
||||
|
||||
%group gVersion2
|
||||
%hook YTVersionUtils // Removes Playables in Explore
|
||||
+ (NSString *)appVersion { return @"18.33.3"; }
|
||||
%end
|
||||
%end
|
||||
|
||||
%group gVersion3
|
||||
%hook YTVersionUtils // Fixes YTClassicVideoQuality + YTSpeed
|
||||
+ (NSString *)appVersion { return @"18.18.2"; }
|
||||
%end
|
||||
%end
|
||||
|
||||
%group gVersion4
|
||||
%hook YTVersionUtils // First v18 App Version
|
||||
+ (NSString *)appVersion { return @"18.01.2"; }
|
||||
%end
|
||||
%end
|
||||
|
||||
%group gVersion5
|
||||
%hook YTVersionUtils // Last v17 App Version
|
||||
+ (NSString *)appVersion { return @"17.49.6"; }
|
||||
%end
|
||||
%end
|
||||
|
||||
%group gVersion6
|
||||
%hook YTVersionUtils // v17.38.10 Fixes LowContrastMode + No Rounded Thumbnails
|
||||
+ (NSString *)appVersion { return @"17.38.10"; }
|
||||
%end
|
||||
%end
|
||||
|
||||
%group gVersion7
|
||||
%hook YTVersionUtils // Oldest Supported App Version (v17)
|
||||
+ (NSString *)appVersion { return @"17.33.2"; }
|
||||
%end
|
||||
%end
|
||||
|
||||
# pragma mark - ctor
|
||||
%ctor {
|
||||
%init;
|
||||
if (version0()) { // 0
|
||||
%init(gVersion0);
|
||||
}
|
||||
if (version1()) { // 1
|
||||
%init(gVersion1);
|
||||
}
|
||||
if (version2()) { // 2
|
||||
%init(gVersion2);
|
||||
}
|
||||
if (version3()) { // 3
|
||||
%init(gVersion3);
|
||||
}
|
||||
if (version4()) { // 4
|
||||
%init(gVersion4);
|
||||
}
|
||||
if (version5()) { // 5
|
||||
%init(gVersion5);
|
||||
}
|
||||
if (version6()) { // 6
|
||||
%init(gVersion6);
|
||||
}
|
||||
if (version7()) { // 7
|
||||
%init(gVersion7);
|
||||
}
|
||||
}
|
||||
100
Source/get_keys.py
Normal file
|
|
@ -0,0 +1,100 @@
|
|||
import re
|
||||
import os
|
||||
|
||||
def extract_values_from_file(file_path):
|
||||
"""
|
||||
Extracts keys that match the pattern @\"<some_text>_enabled\" from the given file.
|
||||
|
||||
Args:
|
||||
file_path (str): The path to the file to be searched.
|
||||
|
||||
Returns:
|
||||
list: A list of matching keys found in the file.
|
||||
"""
|
||||
# Define the regex pattern to match the strings that resemble the given examples
|
||||
pattern = r'@\"[a-zA-Z0-9_]+_enabled\"'
|
||||
matches = []
|
||||
|
||||
try:
|
||||
# Read the content of the file
|
||||
with open(file_path, 'r') as file:
|
||||
file_content = file.read()
|
||||
|
||||
# Find all matches
|
||||
matches = re.findall(pattern, file_content)
|
||||
except Exception as e:
|
||||
print(f"Error reading {file_path}: {e}")
|
||||
|
||||
return matches
|
||||
|
||||
def format_output(keys):
|
||||
"""
|
||||
Formats the keys with indentation and line breaks if the segment exceeds 120 characters (116 excluding indentation).
|
||||
|
||||
Args:
|
||||
keys (list): The list of keys to be formatted.
|
||||
|
||||
Returns:
|
||||
str: A formatted string with the keys.
|
||||
"""
|
||||
indent = " " * 4
|
||||
line_length_limit = 116 # Limit excluding indentation
|
||||
current_line = indent
|
||||
formatted_output = ""
|
||||
|
||||
for key in keys:
|
||||
# Check if adding the next key would exceed the line length limit
|
||||
if len(current_line) + len(key) + 2 > line_length_limit: # +2 accounts for the comma and space
|
||||
# Add the current line to the formatted output and start a new line
|
||||
formatted_output += current_line.rstrip(", ") + ",\n"
|
||||
current_line = indent # Start a new indented line
|
||||
|
||||
# Add the key to the current line
|
||||
current_line += key + ", "
|
||||
|
||||
# Add the last line to the output
|
||||
formatted_output += current_line.rstrip(", ") # Remove trailing comma and space from the final line
|
||||
return formatted_output
|
||||
|
||||
def find_and_extract_keys():
|
||||
"""
|
||||
Recursively searches for .xm and .h files in the parent directory and extracts keys
|
||||
that match the pattern @\"<some_text>_enabled\". The matching keys are then printed
|
||||
with indentation and line breaks if the line exceeds 120 characters.
|
||||
Ignores SettingsKeys.h
|
||||
|
||||
Usage:
|
||||
1. Place this script in the desired directory.
|
||||
2. Run the script with the command: python extract_keys.py
|
||||
3. The script will search for all .xm and .h files in the parent directory and
|
||||
print any matching keys it finds.
|
||||
|
||||
Note:
|
||||
- The script searches the directory where it is located (the parent directory).
|
||||
- It only looks for files with extensions .xm and .h.
|
||||
"""
|
||||
# Get the parent directory
|
||||
parent_directory = os.path.dirname(os.path.abspath(__file__))
|
||||
|
||||
# Store the found keys
|
||||
found_keys = set() # Use a set to automatically remove duplicates
|
||||
|
||||
# Walk through the parent directory and find all .xm and .h files
|
||||
for root, dirs, files in os.walk(parent_directory):
|
||||
for file in files:
|
||||
if file.endswith(('.xm', '.h')):
|
||||
# Skip SettingsKeys.h
|
||||
if file == "SettingsKeys.h":
|
||||
continue
|
||||
file_path = os.path.join(root, file)
|
||||
found_keys.update(extract_values_from_file(file_path))
|
||||
|
||||
# Print the found keys with formatting
|
||||
if found_keys:
|
||||
sorted_keys = sorted(found_keys)
|
||||
print(format_output(sorted_keys))
|
||||
else:
|
||||
print("No keys found.")
|
||||
|
||||
if __name__ == "__main__":
|
||||
find_and_extract_keys()
|
||||
1
Tweaks/Alderis
Submodule
|
|
@ -0,0 +1 @@
|
|||
Subproject commit 15b061bf414cf29fd0d4e0e124e9e2ccb99326b0
|
||||
16
Tweaks/Alderis/.gitignore
vendored
|
|
@ -1,16 +0,0 @@
|
|||
# Crap
|
||||
.DS_Store
|
||||
|
||||
# Xcode
|
||||
*.pbxuser
|
||||
!default.pbxuser
|
||||
xcuserdata
|
||||
*.xccheckout
|
||||
*.xcuserstate
|
||||
|
||||
# Carthage
|
||||
Carthage/
|
||||
|
||||
# Theos
|
||||
.theos
|
||||
packages/
|
||||
|
|
@ -1,36 +0,0 @@
|
|||
clean: true
|
||||
author: HASHBANG Productions
|
||||
author_url: https://hbang.github.io/
|
||||
github_url: https://github.com/hbang/Alderis
|
||||
root_url: https://hbang.github.io/Alderis/
|
||||
dash_url: https://hbang.github.io/Alderis/docsets/Alderis.xml
|
||||
documentation: info/*.md
|
||||
hide_documentation_coverage: true
|
||||
|
||||
custom_categories:
|
||||
- name: "Guides"
|
||||
children:
|
||||
- "Preference Bundles"
|
||||
- "Migrating to 1.1"
|
||||
|
||||
- name: "Color Picker"
|
||||
children:
|
||||
- ColorPickerViewController
|
||||
- ColorPickerConfiguration
|
||||
- ColorPickerDelegate
|
||||
- ColorPickerTab
|
||||
|
||||
- name: "UI Components"
|
||||
children:
|
||||
- ColorWell
|
||||
|
||||
- name: "Extensions"
|
||||
children:
|
||||
- UIColor
|
||||
- ColorPropertyListValue
|
||||
- String
|
||||
- Array
|
||||
|
||||
- name: "Deprecated"
|
||||
children:
|
||||
- ColorPickerCircleView
|
||||
|
|
@ -1,61 +0,0 @@
|
|||
disabled_rules:
|
||||
- trailing_comma
|
||||
- nesting
|
||||
- fallthrough
|
||||
- shorthand_operator
|
||||
- todo
|
||||
- large_tuple
|
||||
- identifier_name
|
||||
- type_name
|
||||
- type_body_length
|
||||
# TODO: Why is vertical_parameter_alignment giving false positives?
|
||||
- vertical_parameter_alignment
|
||||
- vertical_parameter_alignment_on_call
|
||||
# TODO: Enable when removing support for older Swift versions (<5.6)
|
||||
- unavailable_condition
|
||||
opt_in_rules:
|
||||
- closure_end_indentation
|
||||
- closure_spacing
|
||||
- contains_over_first_not_nil
|
||||
- empty_count
|
||||
- explicit_init
|
||||
- fatal_error_message
|
||||
- first_where
|
||||
- joined_default_parameter
|
||||
- literal_expression_end_indentation
|
||||
- overridden_super_call
|
||||
- prohibited_super_call
|
||||
- sorted_first_last
|
||||
- unneeded_parentheses_in_closure_argument
|
||||
- vertical_parameter_alignment_on_call
|
||||
- yoda_condition
|
||||
- nslocalizedstring_key
|
||||
- unused_setter_value
|
||||
custom_rules:
|
||||
comment_whitespace:
|
||||
name: "Comment Whitespace"
|
||||
regex: //\S
|
||||
match_kinds: comment
|
||||
message: "Comments must begin with a whitespace character"
|
||||
spaces_not_tabs:
|
||||
name: "Tabs not Spaces"
|
||||
regex: ^( )
|
||||
message: "Use tabs instead of spaces"
|
||||
point_zero:
|
||||
name: "Point Zero"
|
||||
regex: '(?<!iOS\s)(?<!macOS\s)(?<!\.)\b[\d_]+\.0\b'
|
||||
match_kinds:
|
||||
- number
|
||||
- attribute.builtin
|
||||
message: "Don't add a .0 to the end of floating point literals"
|
||||
color_init:
|
||||
name: "Color Initializer"
|
||||
regex: 'UIColor\(red: (.+), green: \1, blue: \1, alpha: .+\)'
|
||||
message: "Use UIColor(white:alpha:)"
|
||||
force_try: warning
|
||||
force_cast: warning
|
||||
function_body_length: 200
|
||||
line_length: 200
|
||||
file_length: 450
|
||||
cyclomatic_complexity: 12
|
||||
function_parameter_count: 7
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
Pod::Spec.new do |spec|
|
||||
spec.name = "Alderis"
|
||||
spec.version = "1.2.0"
|
||||
spec.summary = "A fresh new color picker, with a gentle, fun, and dead simple user interface."
|
||||
spec.description = <<-DESC
|
||||
Alderis is a fresh new color picker, with a gentle, fun, and dead simple user
|
||||
interface. It aims to incorporate the usual elements of a color picker, in a way
|
||||
that users will find easy and fun to use.
|
||||
|
||||
The user can start by selecting a color they like on the initial color palette
|
||||
tab, and either accept it, or refine it using the color wheel and adjustment
|
||||
sliders found on the two other tabs.
|
||||
DESC
|
||||
spec.homepage = "https://github.com/hbang/Alderis"
|
||||
spec.screenshots = "https://github.com/hbang/Alderis/raw/main/screenshots/alderis-1.jpg",
|
||||
"https://github.com/hbang/Alderis/raw/main/screenshots/alderis-2.jpg",
|
||||
"https://github.com/hbang/Alderis/raw/main/screenshots/alderis-3.jpg",
|
||||
"https://github.com/hbang/Alderis/raw/main/screenshots/alderis-4.jpg"
|
||||
spec.license = "Apache License, Version 2.0"
|
||||
spec.author = "HASHBANG Productions"
|
||||
spec.social_media_url = "https://twitter.com/hashbang"
|
||||
|
||||
spec.swift_versions = "5.0"
|
||||
spec.platform = :ios, "12.0"
|
||||
|
||||
spec.source = { :git => "https://github.com/hbang/Alderis.git", :tag => "#{spec.version}" }
|
||||
spec.requires_arc = true
|
||||
spec.source_files = [ "Alderis/*.swift", "Alderis/*.h" ]
|
||||
spec.resource_bundles = { "Alderis" => "Alderis/Assets-ios12.xcassets" }
|
||||
end
|
||||
|
|
@ -1,482 +0,0 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 52;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
4E1C741328266C5900227EC3 /* UIFontDescriptorAdditions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4E1C741228266C5900227EC3 /* UIFontDescriptorAdditions.swift */; };
|
||||
4E1C74172826C1F100227EC3 /* ColorPickerAccessibilityViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4E1C74162826C1F100227EC3 /* ColorPickerAccessibilityViewController.swift */; };
|
||||
4E1C741928276D5600227EC3 /* TextViewLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4E1C741828276D5600227EC3 /* TextViewLabel.swift */; };
|
||||
4E1C741B2827829E00227EC3 /* AccessibilityComplianceLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4E1C741A2827829E00227EC3 /* AccessibilityComplianceLabel.swift */; };
|
||||
4E1C741D2827882600227EC3 /* AccessibilityContrastSelector.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4E1C741C2827882600227EC3 /* AccessibilityContrastSelector.swift */; };
|
||||
4E1C741F2827B3C800227EC3 /* UIFloat.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4E1C741E2827B3C800227EC3 /* UIFloat.swift */; };
|
||||
4E1C74212827B8F800227EC3 /* NSBeep.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4E1C74202827B8F800227EC3 /* NSBeep.swift */; };
|
||||
4E2E6C06282BD5990089E4FB /* GradientView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4E2E6C05282BD5990089E4FB /* GradientView.swift */; };
|
||||
569C25522427F57000022C60 /* ColorPickerTabViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 569C25512427F57000022C60 /* ColorPickerTabViewController.swift */; };
|
||||
569C25582428346900022C60 /* ColorPickerMapSlider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 569C25572428346900022C60 /* ColorPickerMapSlider.swift */; };
|
||||
56C74667242F722A003ED00A /* ColorPickerSlider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 56C74666242F722A003ED00A /* ColorPickerSlider.swift */; };
|
||||
56C74669242F75E3003ED00A /* ColorPickerNumericSlider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 56C74668242F75E3003ED00A /* ColorPickerNumericSlider.swift */; };
|
||||
94A2368C252B5951002B5D0B /* UIColorAdditions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94A2368B252B5951002B5D0B /* UIColorAdditions.swift */; };
|
||||
CF73D33A241F9C23000B1B10 /* Alderis.h in Headers */ = {isa = PBXBuildFile; fileRef = CF73D338241F9C23000B1B10 /* Alderis.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
CF73D344241F9C31000B1B10 /* ColorWell.swift in Sources */ = {isa = PBXBuildFile; fileRef = CF73D32D241E49EE000B1B10 /* ColorWell.swift */; };
|
||||
CF73D345241F9C31000B1B10 /* ColorPickerMapViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CFE70280241CBDE700083903 /* ColorPickerMapViewController.swift */; };
|
||||
CF73D346241F9C31000B1B10 /* ColorPickerSlidersViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CFE70282241CC88D00083903 /* ColorPickerSlidersViewController.swift */; };
|
||||
CF73D347241F9C31000B1B10 /* ColorPickerWheelView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CFE70288241D0E7300083903 /* ColorPickerWheelView.swift */; };
|
||||
CF73D348241F9C31000B1B10 /* ColorPickerInnerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CFE7027B241A62ED00083903 /* ColorPickerInnerViewController.swift */; };
|
||||
CF73D34A241F9C31000B1B10 /* ColorPickerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CFE70273241A4C5500083903 /* ColorPickerViewController.swift */; };
|
||||
CF73D34B241F9C31000B1B10 /* ColorPickerSwatchViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = CFE7027E241B984600083903 /* ColorPickerSwatchViewController.swift */; };
|
||||
CF73D34C241F9C4D000B1B10 /* Color.swift in Sources */ = {isa = PBXBuildFile; fileRef = CF73D32B241E4720000B1B10 /* Color.swift */; };
|
||||
CF73D351241F9FB3000B1B10 /* ColorPickerDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = CF73D350241F9FB3000B1B10 /* ColorPickerDelegate.swift */; };
|
||||
CF7750B72520D3B50069CC57 /* Assets.swift in Sources */ = {isa = PBXBuildFile; fileRef = CF7750B62520D3B50069CC57 /* Assets.swift */; };
|
||||
CF7750BE252203630069CC57 /* DialogButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = CF7750BD252203630069CC57 /* DialogButton.swift */; };
|
||||
CF7750CF252433680069CC57 /* ColorPickerConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = CF7750CE252433680069CC57 /* ColorPickerConfiguration.swift */; };
|
||||
CF7750D62524615D0069CC57 /* SeparatorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CF7750D52524615D0069CC57 /* SeparatorView.swift */; };
|
||||
CF775122252852460069CC57 /* AlderisSDKCompatibility.h in Headers */ = {isa = PBXBuildFile; fileRef = CF775121252852110069CC57 /* AlderisSDKCompatibility.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
CF79DA31251723C500F17BCB /* BottomSheetTransition.swift in Sources */ = {isa = PBXBuildFile; fileRef = CF79DA30251723C500F17BCB /* BottomSheetTransition.swift */; };
|
||||
CFAFFC9124277CEE005AD4C1 /* Assets-ios12.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = CFAFFC9024277CEE005AD4C1 /* Assets-ios12.xcassets */; platformFilter = ios; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
4E1C741228266C5900227EC3 /* UIFontDescriptorAdditions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIFontDescriptorAdditions.swift; sourceTree = "<group>"; };
|
||||
4E1C74162826C1F100227EC3 /* ColorPickerAccessibilityViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ColorPickerAccessibilityViewController.swift; sourceTree = "<group>"; };
|
||||
4E1C741828276D5600227EC3 /* TextViewLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextViewLabel.swift; sourceTree = "<group>"; };
|
||||
4E1C741A2827829E00227EC3 /* AccessibilityComplianceLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccessibilityComplianceLabel.swift; sourceTree = "<group>"; };
|
||||
4E1C741C2827882600227EC3 /* AccessibilityContrastSelector.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccessibilityContrastSelector.swift; sourceTree = "<group>"; };
|
||||
4E1C741E2827B3C800227EC3 /* UIFloat.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIFloat.swift; sourceTree = "<group>"; };
|
||||
4E1C74202827B8F800227EC3 /* NSBeep.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NSBeep.swift; sourceTree = "<group>"; };
|
||||
4E2E6C05282BD5990089E4FB /* GradientView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GradientView.swift; sourceTree = "<group>"; };
|
||||
569C25512427F57000022C60 /* ColorPickerTabViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ColorPickerTabViewController.swift; sourceTree = "<group>"; };
|
||||
569C25572428346900022C60 /* ColorPickerMapSlider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ColorPickerMapSlider.swift; sourceTree = "<group>"; };
|
||||
56C74666242F722A003ED00A /* ColorPickerSlider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ColorPickerSlider.swift; sourceTree = "<group>"; };
|
||||
56C74668242F75E3003ED00A /* ColorPickerNumericSlider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ColorPickerNumericSlider.swift; sourceTree = "<group>"; };
|
||||
94A2368B252B5951002B5D0B /* UIColorAdditions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIColorAdditions.swift; sourceTree = "<group>"; };
|
||||
CF73D32B241E4720000B1B10 /* Color.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Color.swift; sourceTree = "<group>"; };
|
||||
CF73D32D241E49EE000B1B10 /* ColorWell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ColorWell.swift; sourceTree = "<group>"; };
|
||||
CF73D336241F9C23000B1B10 /* Alderis.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Alderis.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
CF73D338241F9C23000B1B10 /* Alderis.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Alderis.h; sourceTree = "<group>"; };
|
||||
CF73D339241F9C23000B1B10 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
CF73D350241F9FB3000B1B10 /* ColorPickerDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ColorPickerDelegate.swift; sourceTree = "<group>"; };
|
||||
CF7750B62520D3B50069CC57 /* Assets.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Assets.swift; sourceTree = "<group>"; };
|
||||
CF7750BD252203630069CC57 /* DialogButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DialogButton.swift; sourceTree = "<group>"; };
|
||||
CF7750CE252433680069CC57 /* ColorPickerConfiguration.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ColorPickerConfiguration.swift; sourceTree = "<group>"; };
|
||||
CF7750D52524615D0069CC57 /* SeparatorView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SeparatorView.swift; sourceTree = "<group>"; };
|
||||
CF775121252852110069CC57 /* AlderisSDKCompatibility.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AlderisSDKCompatibility.h; sourceTree = "<group>"; };
|
||||
CF79DA30251723C500F17BCB /* BottomSheetTransition.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BottomSheetTransition.swift; sourceTree = "<group>"; };
|
||||
CFAFFC9024277CEE005AD4C1 /* Assets-ios12.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Assets-ios12.xcassets"; sourceTree = "<group>"; };
|
||||
CFE70273241A4C5500083903 /* ColorPickerViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ColorPickerViewController.swift; sourceTree = "<group>"; };
|
||||
CFE7027B241A62ED00083903 /* ColorPickerInnerViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ColorPickerInnerViewController.swift; sourceTree = "<group>"; };
|
||||
CFE7027E241B984600083903 /* ColorPickerSwatchViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ColorPickerSwatchViewController.swift; sourceTree = "<group>"; };
|
||||
CFE70280241CBDE700083903 /* ColorPickerMapViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ColorPickerMapViewController.swift; sourceTree = "<group>"; };
|
||||
CFE70282241CC88D00083903 /* ColorPickerSlidersViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ColorPickerSlidersViewController.swift; sourceTree = "<group>"; };
|
||||
CFE70288241D0E7300083903 /* ColorPickerWheelView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ColorPickerWheelView.swift; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
CF73D333241F9C23000B1B10 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
CF39D435222BC07C001EF57F = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
CF73D337241F9C23000B1B10 /* Alderis */,
|
||||
CF39D43F222BC07C001EF57F /* Products */,
|
||||
);
|
||||
indentWidth = 2;
|
||||
sourceTree = "<group>";
|
||||
tabWidth = 2;
|
||||
usesTabs = 1;
|
||||
};
|
||||
CF39D43F222BC07C001EF57F /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
CF73D336241F9C23000B1B10 /* Alderis.framework */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
CF73D337241F9C23000B1B10 /* Alderis */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
CF73D338241F9C23000B1B10 /* Alderis.h */,
|
||||
CF775121252852110069CC57 /* AlderisSDKCompatibility.h */,
|
||||
CF7750B62520D3B50069CC57 /* Assets.swift */,
|
||||
CF79DA30251723C500F17BCB /* BottomSheetTransition.swift */,
|
||||
CF73D32B241E4720000B1B10 /* Color.swift */,
|
||||
CFE70273241A4C5500083903 /* ColorPickerViewController.swift */,
|
||||
CF7750CE252433680069CC57 /* ColorPickerConfiguration.swift */,
|
||||
CF73D350241F9FB3000B1B10 /* ColorPickerDelegate.swift */,
|
||||
CFE7027B241A62ED00083903 /* ColorPickerInnerViewController.swift */,
|
||||
569C25512427F57000022C60 /* ColorPickerTabViewController.swift */,
|
||||
56C74666242F722A003ED00A /* ColorPickerSlider.swift */,
|
||||
CFE7027E241B984600083903 /* ColorPickerSwatchViewController.swift */,
|
||||
569C25572428346900022C60 /* ColorPickerMapSlider.swift */,
|
||||
CFE70280241CBDE700083903 /* ColorPickerMapViewController.swift */,
|
||||
CFE70288241D0E7300083903 /* ColorPickerWheelView.swift */,
|
||||
CFE70282241CC88D00083903 /* ColorPickerSlidersViewController.swift */,
|
||||
56C74668242F75E3003ED00A /* ColorPickerNumericSlider.swift */,
|
||||
4E1C74162826C1F100227EC3 /* ColorPickerAccessibilityViewController.swift */,
|
||||
4E1C741A2827829E00227EC3 /* AccessibilityComplianceLabel.swift */,
|
||||
4E1C741C2827882600227EC3 /* AccessibilityContrastSelector.swift */,
|
||||
CF73D32D241E49EE000B1B10 /* ColorWell.swift */,
|
||||
CF7750BD252203630069CC57 /* DialogButton.swift */,
|
||||
CF7750D52524615D0069CC57 /* SeparatorView.swift */,
|
||||
4E2E6C05282BD5990089E4FB /* GradientView.swift */,
|
||||
94A2368B252B5951002B5D0B /* UIColorAdditions.swift */,
|
||||
4E1C741228266C5900227EC3 /* UIFontDescriptorAdditions.swift */,
|
||||
4E1C741E2827B3C800227EC3 /* UIFloat.swift */,
|
||||
4E1C741828276D5600227EC3 /* TextViewLabel.swift */,
|
||||
4E1C74202827B8F800227EC3 /* NSBeep.swift */,
|
||||
CF73D339241F9C23000B1B10 /* Info.plist */,
|
||||
CFAFFC9024277CEE005AD4C1 /* Assets-ios12.xcassets */,
|
||||
);
|
||||
path = Alderis;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXHeadersBuildPhase section */
|
||||
CF73D331241F9C23000B1B10 /* Headers */ = {
|
||||
isa = PBXHeadersBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
CF73D33A241F9C23000B1B10 /* Alderis.h in Headers */,
|
||||
CF775122252852460069CC57 /* AlderisSDKCompatibility.h in Headers */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXHeadersBuildPhase section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
CF73D335241F9C23000B1B10 /* Alderis */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = CF73D340241F9C23000B1B10 /* Build configuration list for PBXNativeTarget "Alderis" */;
|
||||
buildPhases = (
|
||||
CF73D331241F9C23000B1B10 /* Headers */,
|
||||
CF73D332241F9C23000B1B10 /* Sources */,
|
||||
CF73D333241F9C23000B1B10 /* Frameworks */,
|
||||
CF73D334241F9C23000B1B10 /* Resources */,
|
||||
CF77511225281F7E0069CC57 /* SwiftLint */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = Alderis;
|
||||
productName = Alderis;
|
||||
productReference = CF73D336241F9C23000B1B10 /* Alderis.framework */;
|
||||
productType = "com.apple.product-type.framework";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
CF39D436222BC07C001EF57F /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 1330;
|
||||
ORGANIZATIONNAME = "HASHBANG Productions";
|
||||
TargetAttributes = {
|
||||
CF73D335241F9C23000B1B10 = {
|
||||
CreatedOnToolsVersion = 11.3.1;
|
||||
};
|
||||
};
|
||||
};
|
||||
buildConfigurationList = CF39D439222BC07C001EF57F /* Build configuration list for PBXProject "Alderis" */;
|
||||
compatibilityVersion = "Xcode 9.3";
|
||||
developmentRegion = en;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
en,
|
||||
Base,
|
||||
);
|
||||
mainGroup = CF39D435222BC07C001EF57F;
|
||||
productRefGroup = CF39D43F222BC07C001EF57F /* Products */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
CF73D335241F9C23000B1B10 /* Alderis */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXResourcesBuildPhase section */
|
||||
CF73D334241F9C23000B1B10 /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
CFAFFC9124277CEE005AD4C1 /* Assets-ios12.xcassets in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXShellScriptBuildPhase section */
|
||||
CF77511225281F7E0069CC57 /* SwiftLint */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputFileListPaths = (
|
||||
);
|
||||
inputPaths = (
|
||||
);
|
||||
name = SwiftLint;
|
||||
outputFileListPaths = (
|
||||
);
|
||||
outputPaths = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "export PATH=$PATH:/opt/homebrew/bin\nif which swiftlint >/dev/null; then\n\tswiftlint\nelse\n\techo \"warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint\"\nfi\n";
|
||||
};
|
||||
/* End PBXShellScriptBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
CF73D332241F9C23000B1B10 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
CF73D34B241F9C31000B1B10 /* ColorPickerSwatchViewController.swift in Sources */,
|
||||
CF7750BE252203630069CC57 /* DialogButton.swift in Sources */,
|
||||
4E1C741928276D5600227EC3 /* TextViewLabel.swift in Sources */,
|
||||
CF73D347241F9C31000B1B10 /* ColorPickerWheelView.swift in Sources */,
|
||||
CF7750D62524615D0069CC57 /* SeparatorView.swift in Sources */,
|
||||
CF73D34C241F9C4D000B1B10 /* Color.swift in Sources */,
|
||||
94A2368C252B5951002B5D0B /* UIColorAdditions.swift in Sources */,
|
||||
569C25582428346900022C60 /* ColorPickerMapSlider.swift in Sources */,
|
||||
4E2E6C06282BD5990089E4FB /* GradientView.swift in Sources */,
|
||||
CF73D344241F9C31000B1B10 /* ColorWell.swift in Sources */,
|
||||
CF7750B72520D3B50069CC57 /* Assets.swift in Sources */,
|
||||
CF73D348241F9C31000B1B10 /* ColorPickerInnerViewController.swift in Sources */,
|
||||
56C74667242F722A003ED00A /* ColorPickerSlider.swift in Sources */,
|
||||
4E1C74212827B8F800227EC3 /* NSBeep.swift in Sources */,
|
||||
4E1C74172826C1F100227EC3 /* ColorPickerAccessibilityViewController.swift in Sources */,
|
||||
4E1C741D2827882600227EC3 /* AccessibilityContrastSelector.swift in Sources */,
|
||||
CF73D345241F9C31000B1B10 /* ColorPickerMapViewController.swift in Sources */,
|
||||
CF79DA31251723C500F17BCB /* BottomSheetTransition.swift in Sources */,
|
||||
4E1C741328266C5900227EC3 /* UIFontDescriptorAdditions.swift in Sources */,
|
||||
CF73D34A241F9C31000B1B10 /* ColorPickerViewController.swift in Sources */,
|
||||
CF7750CF252433680069CC57 /* ColorPickerConfiguration.swift in Sources */,
|
||||
56C74669242F75E3003ED00A /* ColorPickerNumericSlider.swift in Sources */,
|
||||
569C25522427F57000022C60 /* ColorPickerTabViewController.swift in Sources */,
|
||||
4E1C741F2827B3C800227EC3 /* UIFloat.swift in Sources */,
|
||||
CF73D351241F9FB3000B1B10 /* ColorPickerDelegate.swift in Sources */,
|
||||
CF73D346241F9C31000B1B10 /* ColorPickerSlidersViewController.swift in Sources */,
|
||||
4E1C741B2827829E00227EC3 /* AccessibilityComplianceLabel.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
CF39D452222BC07E001EF57F /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_ENABLE_OBJC_WEAK = YES;
|
||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_COMMA = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
||||
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
ENABLE_TESTABILITY = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"DEBUG=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
||||
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
|
||||
MTL_FAST_MATH = YES;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
SDKROOT = iphoneos;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
CF39D453222BC07E001EF57F /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_ENABLE_OBJC_WEAK = YES;
|
||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_COMMA = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
|
||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
||||
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
ENABLE_NS_ASSERTIONS = NO;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
MTL_FAST_MATH = YES;
|
||||
SDKROOT = iphoneos;
|
||||
SWIFT_COMPILATION_MODE = wholemodule;
|
||||
VALIDATE_PRODUCT = YES;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
CF73D341241F9C23000B1B10 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
APPLICATION_EXTENSION_API_ONLY = YES;
|
||||
BUILD_LIBRARY_FOR_DISTRIBUTION = YES;
|
||||
CURRENT_PROJECT_VERSION = 3;
|
||||
DEFINES_MODULE = YES;
|
||||
DYLIB_COMPATIBILITY_VERSION = 1;
|
||||
DYLIB_CURRENT_VERSION = 1;
|
||||
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
||||
INFOPLIST_FILE = Alderis/Info.plist;
|
||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
"@loader_path/Frameworks",
|
||||
);
|
||||
MARKETING_VERSION = 1.2;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = ws.hbang.Alderis;
|
||||
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
|
||||
SKIP_INSTALL = NO;
|
||||
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
VERSIONING_SYSTEM = "apple-generic";
|
||||
VERSION_INFO_PREFIX = "";
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
CF73D342241F9C23000B1B10 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
APPLICATION_EXTENSION_API_ONLY = YES;
|
||||
BUILD_LIBRARY_FOR_DISTRIBUTION = YES;
|
||||
CURRENT_PROJECT_VERSION = 3;
|
||||
DEFINES_MODULE = YES;
|
||||
DYLIB_COMPATIBILITY_VERSION = 1;
|
||||
DYLIB_CURRENT_VERSION = 1;
|
||||
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
||||
INFOPLIST_FILE = Alderis/Info.plist;
|
||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
"@loader_path/Frameworks",
|
||||
);
|
||||
MARKETING_VERSION = 1.2;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = ws.hbang.Alderis;
|
||||
PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
|
||||
SKIP_INSTALL = NO;
|
||||
SWIFT_COMPILATION_MODE = wholemodule;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-O";
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
VERSIONING_SYSTEM = "apple-generic";
|
||||
VERSION_INFO_PREFIX = "";
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
CF39D439222BC07C001EF57F /* Build configuration list for PBXProject "Alderis" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
CF39D452222BC07E001EF57F /* Debug */,
|
||||
CF39D453222BC07E001EF57F /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
CF73D340241F9C23000B1B10 /* Build configuration list for PBXNativeTarget "Alderis" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
CF73D341241F9C23000B1B10 /* Debug */,
|
||||
CF73D342241F9C23000B1B10 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = CF39D436222BC07C001EF57F /* Project object */;
|
||||
}
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Workspace
|
||||
version = "1.0">
|
||||
<FileRef
|
||||
location = "self:Alderis Demo.xcodeproj">
|
||||
</FileRef>
|
||||
</Workspace>
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>IDEDidComputeMac32BitWarning</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
|
|
@ -1,67 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1330"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "CF73D335241F9C23000B1B10"
|
||||
BuildableName = "Alderis.framework"
|
||||
BlueprintName = "Alderis"
|
||||
ReferencedContainer = "container:Alderis.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
<Testables>
|
||||
</Testables>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
allowLocationSimulation = "YES">
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
buildConfiguration = "Release"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "CF73D335241F9C23000B1B10"
|
||||
BuildableName = "Alderis.framework"
|
||||
BlueprintName = "Alderis"
|
||||
ReferencedContainer = "container:Alderis.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
||||
|
|
@ -1,77 +0,0 @@
|
|||
//
|
||||
// AccessibilityComplianceLabel.swift
|
||||
// Alderis
|
||||
//
|
||||
// Created by Adam Demasi on 8/5/2022.
|
||||
// Copyright © 2022 HASHBANG Productions. All rights reserved.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
|
||||
internal class AccessibilityComplianceLabel: UIView {
|
||||
|
||||
var text: String {
|
||||
get { label.text! }
|
||||
set { label.text = newValue }
|
||||
}
|
||||
|
||||
var isCompliant = false {
|
||||
didSet { updateState() }
|
||||
}
|
||||
|
||||
private let tickImage = Assets.systemImage(named: "checkmark.circle.fill")
|
||||
private let crossImage = Assets.systemImage(named: "xmark.circle.fill")
|
||||
|
||||
private var imageView: UIImageView!
|
||||
private var label: UILabel!
|
||||
|
||||
override init(frame: CGRect) {
|
||||
super.init(frame: frame)
|
||||
|
||||
let font = UIFont.systemFont(ofSize: UIFloat(16), weight: .medium)
|
||||
|
||||
imageView = UIImageView()
|
||||
if #available(iOS 13, *) {
|
||||
imageView.preferredSymbolConfiguration = UIImage.SymbolConfiguration(font: font, scale: .small)
|
||||
}
|
||||
|
||||
label = UILabel()
|
||||
label.font = font
|
||||
|
||||
let stackView = UIStackView(arrangedSubviews: [imageView, label])
|
||||
stackView.translatesAutoresizingMaskIntoConstraints = false
|
||||
stackView.alignment = .center
|
||||
stackView.spacing = UIFloat(6)
|
||||
addSubview(stackView)
|
||||
|
||||
NSLayoutConstraint.activate([
|
||||
stackView.topAnchor.constraint(equalTo: self.topAnchor),
|
||||
stackView.bottomAnchor.constraint(equalTo: self.bottomAnchor),
|
||||
stackView.leadingAnchor.constraint(equalTo: self.leadingAnchor),
|
||||
stackView.trailingAnchor.constraint(equalTo: self.trailingAnchor)
|
||||
])
|
||||
}
|
||||
|
||||
convenience init(text: String) {
|
||||
self.init(frame: .zero)
|
||||
self.text = text
|
||||
}
|
||||
|
||||
required init?(coder: NSCoder) {
|
||||
fatalError("init(coder:) has not been implemented")
|
||||
}
|
||||
|
||||
private func updateState() {
|
||||
let color = isCompliant ? Assets.green : Assets.red
|
||||
|
||||
tintColor = color
|
||||
accessibilityLabel = "\(text): \(isCompliant ? "Compliant" : "Not compliant")"
|
||||
imageView.image = isCompliant ? tickImage : crossImage
|
||||
}
|
||||
|
||||
override func tintColorDidChange() {
|
||||
super.tintColorDidChange()
|
||||
label.textColor = tintColor
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,91 +0,0 @@
|
|||
//
|
||||
// AccessibilityContrastSelector.swift
|
||||
// Alderis
|
||||
//
|
||||
// Created by Adam Demasi on 8/5/2022.
|
||||
// Copyright © 2022 HASHBANG Productions. All rights reserved.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
|
||||
internal class AccessibilityContrastSelector: UIView {
|
||||
|
||||
enum Mode: Int, CaseIterable {
|
||||
case color, black, white
|
||||
|
||||
var label: String {
|
||||
switch self {
|
||||
case .color: return "Color"
|
||||
case .black: return "Black"
|
||||
case .white: return "White"
|
||||
}
|
||||
}
|
||||
|
||||
func color(withColor color: Color) -> Color {
|
||||
switch self {
|
||||
case .color: return color
|
||||
case .black: return .black
|
||||
case .white: return .white
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var text: String {
|
||||
get { label.text! }
|
||||
set { label.text = newValue }
|
||||
}
|
||||
|
||||
var value: Mode = .white {
|
||||
didSet {
|
||||
if segmentedControl.selectedSegmentIndex != value.rawValue {
|
||||
segmentedControl.selectedSegmentIndex = value.rawValue
|
||||
handleChange?(value)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var handleChange: ((Mode) -> Void)?
|
||||
|
||||
private var label: UILabel!
|
||||
private var segmentedControl: UISegmentedControl!
|
||||
|
||||
override init(frame: CGRect) {
|
||||
super.init(frame: frame)
|
||||
|
||||
label = UILabel()
|
||||
label.font = UIFont.systemFont(ofSize: UIFloat(16), weight: .medium)
|
||||
|
||||
segmentedControl = UISegmentedControl(items: Mode.allCases.map(\.label))
|
||||
segmentedControl.addTarget(self, action: #selector(handleValueChanged), for: .valueChanged)
|
||||
|
||||
let stackView = UIStackView(arrangedSubviews: [label, UIView(), segmentedControl])
|
||||
stackView.translatesAutoresizingMaskIntoConstraints = false
|
||||
stackView.alignment = .center
|
||||
stackView.distribution = .fill
|
||||
stackView.spacing = UIFloat(5)
|
||||
addSubview(stackView)
|
||||
|
||||
NSLayoutConstraint.activate([
|
||||
stackView.topAnchor.constraint(equalTo: self.topAnchor),
|
||||
stackView.bottomAnchor.constraint(equalTo: self.bottomAnchor),
|
||||
stackView.leadingAnchor.constraint(equalTo: self.leadingAnchor),
|
||||
stackView.trailingAnchor.constraint(equalTo: self.trailingAnchor)
|
||||
])
|
||||
}
|
||||
|
||||
required init?(coder: NSCoder) {
|
||||
fatalError("init(coder:) has not been implemented")
|
||||
}
|
||||
|
||||
convenience init(text: String, value: Mode) {
|
||||
self.init(frame: .zero)
|
||||
self.text = text
|
||||
self.value = value
|
||||
}
|
||||
|
||||
@objc private func handleValueChanged() {
|
||||
value = Mode(rawValue: segmentedControl.selectedSegmentIndex)!
|
||||
handleChange?(value)
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,11 +0,0 @@
|
|||
//
|
||||
// Alderis.h
|
||||
// Alderis
|
||||
//
|
||||
// Created by Adam Demasi on 16/3/20.
|
||||
// Copyright © 2020 HASHBANG Productions. All rights reserved.
|
||||
//
|
||||
|
||||
@import UIKit;
|
||||
|
||||
#import "AlderisSDKCompatibility.h"
|
||||
|
|
@ -1,21 +0,0 @@
|
|||
//
|
||||
// AlderisSDKCompatibility.h
|
||||
// Alderis
|
||||
//
|
||||
// Created by Adam Demasi on 3/10/20.
|
||||
// Copyright © 2020 HASHBANG Productions. All rights reserved.
|
||||
//
|
||||
|
||||
@import UIKit;
|
||||
|
||||
#ifndef __IPHONE_14_0
|
||||
// Allows building with the iOS 13 SDK while retaining iOS 14 compatibility.
|
||||
|
||||
@interface UIControl ()
|
||||
|
||||
- (void)addAction:(UIAction *)action forControlEvents:(UIControlEvents)controlEvents NS_SWIFT_NAME(addAction(_:for:)) API_AVAILABLE(ios(14.0));
|
||||
- (void)removeAction:(UIAction *)action forControlEvents:(UIControlEvents)controlEvents NS_SWIFT_NAME(removeAction(_:for:)) API_AVAILABLE(ios(14.0));
|
||||
- (void)removeActionForIdentifier:(UIActionIdentifier)actionIdentifier forControlEvents:(UIControlEvents)controlEvents NS_SWIFT_NAME(removeAction(identifiedBy:for:)) API_AVAILABLE(ios(14.0));
|
||||
|
||||
@end
|
||||
#endif
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
{
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "sun.max.png",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "sun.max@2x.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "sun.max@3x.png",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
},
|
||||
"properties" : {
|
||||
"template-rendering-intent" : "template"
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 310 B |
|
Before Width: | Height: | Size: 661 B |
|
Before Width: | Height: | Size: 942 B |
|
|
@ -1,26 +0,0 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "sun.min.png",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "sun.min@2x.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "sun.min@3x.png",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
},
|
||||
"properties" : {
|
||||
"template-rendering-intent" : "template"
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 307 B |
|
Before Width: | Height: | Size: 606 B |
|
Before Width: | Height: | Size: 909 B |
|
|
@ -1,6 +0,0 @@
|
|||
{
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
|
|
@ -1,6 +0,0 @@
|
|||
{
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "checkmark.circle.fill.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "checkmark.circle.fill@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "checkmark.circle.fill@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
},
|
||||
"properties" : {
|
||||
"template-rendering-intent" : "template"
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 169 B |
|
Before Width: | Height: | Size: 287 B |
|
Before Width: | Height: | Size: 377 B |
|
|
@ -1,26 +0,0 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "sparkles.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "sparkles@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "sparkles@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
},
|
||||
"properties" : {
|
||||
"template-rendering-intent" : "template"
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 184 B |
|
Before Width: | Height: | Size: 324 B |
|
Before Width: | Height: | Size: 427 B |
|
|
@ -1,26 +0,0 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "xmark.circle.fill.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "xmark.circle.fill@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "xmark.circle.fill@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
},
|
||||
"properties" : {
|
||||
"template-rendering-intent" : "template"
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 164 B |
|
Before Width: | Height: | Size: 274 B |
|
Before Width: | Height: | Size: 383 B |
|
|
@ -1,6 +0,0 @@
|
|||
{
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "circle.righthalf.fill.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "circle.righthalf.fill@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "circle.righthalf.fill@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
},
|
||||
"properties" : {
|
||||
"template-rendering-intent" : "template"
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 229 B |
|
Before Width: | Height: | Size: 385 B |
|
Before Width: | Height: | Size: 574 B |
|
|
@ -1,26 +0,0 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "slider.horizontal.3.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"filename" : "slider.horizontal.3@2x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"filename" : "slider.horizontal.3@3x.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
},
|
||||
"properties" : {
|
||||
"template-rendering-intent" : "template"
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 208 B |
|
Before Width: | Height: | Size: 361 B |
|
Before Width: | Height: | Size: 507 B |