Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Meta #40

Open
wants to merge 122 commits into
base: master
Choose a base branch
from
Open

Meta #40

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
122 commits
Select commit Hold shift + click to select a range
91a02b0
misc: simplify proxy helper creation
yichengchen Jun 18, 2022
6df282d
misc: reduce alert
yichengchen Jun 19, 2022
c6c74dd
misc: swift lint
yichengchen Jun 19, 2022
fd64890
misc: update ci
yichengchen Jun 19, 2022
f80e02b
misc: add update mmdb log
yichengchen Jun 19, 2022
ca2fa20
misc: update deps and version
yichengchen Jun 20, 2022
cf8f489
misc: fix build issue
yichengchen Jun 20, 2022
b35ded2
misc: update deps
yichengchen Sep 4, 2022
0b1dcb8
fix: add AssociatedBundleIdentifiers
yichengchen Nov 6, 2022
a2cc791
misc: update LoginServiceKit for macos 13
yichengchen Nov 7, 2022
8179ec7
misc: update MACOSX_DEPLOYMENT_TARGET to 10.14
yichengchen Nov 20, 2022
eb69af7
misc: update deps
yichengchen Nov 20, 2022
a00c24c
misc: fix alamofire warning
yichengchen Nov 20, 2022
2b37be7
feat: proxyhelper support ignore list
yichengchen Nov 20, 2022
3c86163
misc: add setting interface
yichengchen Nov 20, 2022
43b88c6
feat: show alert if user disable daemon permission on macos13
yichengchen Nov 20, 2022
2895bfb
misc: bump version
yichengchen Nov 20, 2022
075b59c
Bump GH actions
Goooler Sep 18, 2022
499c81d
Enable CI running on PRs
Goooler Sep 18, 2022
6e73699
misc: support wireguard in api
yichengchen Nov 21, 2022
f8fb1fd
misc: bump core version, support tunnel
yichengchen Nov 21, 2022
b3974c5
fix: proxy setting might be uneditable
yichengchen Nov 22, 2022
cca41bb
misc: disable old daemon when update
yichengchen Nov 22, 2022
9f779ca
misc: bump version
yichengchen Nov 23, 2022
d4a5c58
misc: allow continue if SMAppService.statusForLegacyPlist return .req…
yichengchen Nov 25, 2022
08f2b11
feat: support remove helper
yichengchen Nov 28, 2022
d1fb0d6
feat: check require approve only when no found helper
yichengchen Nov 28, 2022
267f75b
misc: update core
yichengchen Nov 28, 2022
447c1c6
feat: add notice if status icon is covered by notch
yichengchen Feb 1, 2023
a7898d0
Fix typo
MegrezZhu Feb 1, 2023
b9265b6
misc: swift lint
yichengchen Feb 20, 2023
30f194e
misc: update github action
yichengchen Feb 20, 2023
d3e0f34
feat: add port setting in setting
yichengchen Feb 20, 2023
86adebc
misc: fix typo
yichengchen Feb 20, 2023
327f2b4
misc: update readme
yichengchen Feb 20, 2023
9fa2bed
misc: bump version
yichengchen Feb 20, 2023
a5c1b33
ci: update nodejs version
yichengchen Feb 20, 2023
7deb34f
misc: use swiftui for menubar item
yichengchen Mar 1, 2023
7664a43
feat: use built in api to fetch log/traffic instead of websocket
yichengchen Mar 1, 2023
457f035
fix: ci build
yichengchen Mar 2, 2023
7fa11a3
misc: clangWrap is no longer needed
yichengchen Mar 2, 2023
e6522be
fix: spilt c code into header and imp file
yichengchen Mar 2, 2023
aaaa0e3
feat: use meanDelay to show proxy delay
yichengchen Mar 2, 2023
2d95445
misc: read tag version on tag build
yichengchen Mar 2, 2023
d73d70c
fix: fix allow api lan usage button
yichengchen Mar 19, 2023
5c9b35f
misc: allow user define standalone proxy port
yichengchen Mar 19, 2023
2f5dc5c
misc: some core does not have mean delay
yichengchen Mar 24, 2023
d6a04af
misc: fix speed issue when use remote conifg
yichengchen Mar 27, 2023
7c15841
chore: acceptsFirstMouse on dashboard webview
yichengchen Jan 9, 2021
19a4f8b
misc: update core, enable crash collect
yichengchen Mar 28, 2023
b9c4507
ClashLogLevel.warning = "warning" instead of "warn"
Miigon Mar 25, 2023
af2b281
misc: update core
yichengchen Apr 26, 2023
dd5143b
fix: temp remove swiftlint for ci fail
yichengchen Apr 26, 2023
5d83896
ci: update SMJobBlessUtil.py from https://gist.github.com/mikeyh/89a1…
yichengchen Apr 26, 2023
db1b0c9
fix custom image size
yichengchen Apr 27, 2023
ceefa2c
misc: update core
yichengchen May 12, 2023
5105305
feat: ssid suspend
yichengchen May 24, 2023
1c7beba
feat: add switcher for swiftui menu bar
yichengchen May 25, 2023
d2ef7aa
chore: update version
yichengchen May 25, 2023
b13a703
misc: update deps
yichengchen May 25, 2023
2dc1003
feat: support global shortcut
yichengchen May 26, 2023
b55de35
docs: update readme
yichengchen Jun 3, 2023
3a5f61b
feat: add uninstall proxy helper
yichengchen May 26, 2023
d910c34
feat: add open log folder button
yichengchen Jun 2, 2023
6fb8a1a
misc: update core
yichengchen Jun 5, 2023
34f9a16
fix: menu selecting state not update in time in mac os 14
yichengchen Jun 9, 2023
2e012da
misc: add zh-hant
yichengchen Jun 10, 2023
c3f4e15
feat: add default api password [appcenter] [notarize]
yichengchen Jun 12, 2023
d1fb3ff
misc: fix localization
yichengchen Jun 14, 2023
fbe0fc4
feat: add open config file in settings
yichengchen Jun 14, 2023
209c1db
misc: enable swiftlint
yichengchen Jun 14, 2023
f266dbf
misc: swiftlint auto fix
yichengchen Jun 14, 2023
dabbb5b
misc: upgrade Sparkle version to 2.0 (#1162)
miniLV Jun 14, 2023
cf2008a
misc: disable dashboard in macos 10.14 due to webkit support
yichengchen Jun 14, 2023
69a5db7
misc: update core
yichengchen Jun 14, 2023
008c92e
fix: delete webview cache when version update, remove git dir in dash…
yichengchen Jun 15, 2023
8d586f3
misc: update logger to log called function and update sample config
yichengchen Jun 15, 2023
b28af78
misc: add reset userdefault entry
yichengchen Jun 15, 2023
4ab5058
feat: update core, support alive api
yichengchen Jun 17, 2023
2f9260c
fix: temp fix macos 14 beta2 crash issue
yichengchen Jun 25, 2023
b1e4184
fix menu bar height issue
yichengchen Jun 25, 2023
8807dac
fix: try fix macos14 issue
yichengchen Jun 25, 2023
0df4573
misc: update core
yichengchen Jun 26, 2023
bb896b7
misc: revert macOS 14 workaround
yichengchen Jul 8, 2023
860c1f8
feat: reduce exp menu item
yichengchen Jul 12, 2023
425044b
feat: add new native connection panel (#1181)
yichengchen Jul 16, 2023
1359a23
misc: update connection panel localization
yichengchen Jul 18, 2023
2024a12
misc: move setting to the first page of menu
yichengchen Jul 17, 2023
740f84c
fix: should replace mmdb on app upgrade
yichengchen Jul 18, 2023
2268b13
fix: connection panel dark mode issue[beta]
yichengchen Jul 18, 2023
7251a8c
misc: update core
yichengchen Jul 18, 2023
bbe83be
fix: crash when sort by network
yichengchen Jul 20, 2023
fea5404
fix: detail page bg color in dark mode
yichengchen Jul 24, 2023
bc83166
misc: update core
yichengchen Jul 24, 2023
2448a80
misc: adjust connection panel order & enable auto save
yichengchen Jul 24, 2023
c113a33
misc: update keyboardshortcuts
yichengchen Jul 24, 2023
d1c6918
misc: add vless enum
yichengchen Aug 24, 2023
8346f2a
misc: update core
yichengchen Sep 4, 2023
6cf0b5e
ci: update go version
yichengchen Sep 4, 2023
1d2abc3
feat: add update external resources action
yichengchen Sep 5, 2023
a8e1df6
misc: update setting icon config on os below 10.11
yichengchen Sep 5, 2023
2dc0f0d
misc: remove swiftui
yichengchen Sep 5, 2023
35fd471
misc: update packages
yichengchen Sep 5, 2023
4df2c0b
misc: sync core between ClashX and ClashXPro
yichengchen Sep 5, 2023
14f1f38
misc: add swift format config
yichengchen Sep 5, 2023
5b8911f
misc: do swift format
yichengchen Sep 5, 2023
87c4260
fix: update usage of DDLog
yichengchen Sep 5, 2023
0603074
misc: sync core between ClashX and ClashXPro
yichengchen Sep 5, 2023
38341d7
fix: status menu color on startup
yichengchen Sep 5, 2023
3d210e3
misc: add ipv6 enable button
yichengchen Sep 5, 2023
73362ac
fix status menu display color issue
yichengchen Sep 5, 2023
6e40d06
fix: setting shortcut page layout conflict
yichengchen Sep 5, 2023
a8d6f53
feat: show alert when user try to quit clashx with active window disp…
yichengchen Sep 5, 2023
61582e3
feat: allow edit config file directly when reload with an error
yichengchen Sep 5, 2023
e98a6c3
feat: add DiagnosticReports folder open button in debug view controller
yichengchen Sep 6, 2023
ec117e5
fix: disable menu width limit on macOS 14, preventing display issue
yichengchen Sep 9, 2023
6a2b727
fix: should request location permission on macOS14
yichengchen Oct 14, 2023
1528477
feat: use custom jsbridge, remove WebViewJavascriptBridge for xcode 1…
yichengchen Sep 26, 2023
233bc80
misc: update deps
yichengchen Oct 16, 2023
e5b191c
feat: mark proxy group speedtestable
yichengchen Sep 20, 2023
b3234a4
fix: macos 14 connection dashboard overlap issue
yichengchen Oct 18, 2023
498c6d7
misc: sometimes dashboard won't popup to front, recall activate command
yichengchen Oct 18, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .bartycrouch.toml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ translateMethodName = "translate"

[update.normalize]
path = "./ClashX"
sourceLocale = "zh-Hans"
harmonizeWithSource = true
sortByKeys = true

Expand Down
63 changes: 42 additions & 21 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -1,34 +1,51 @@
name: ClashX

on: [push]
on: [ push, workflow_dispatch ]

env:
FASTLANE_SKIP_UPDATE_CHECK: true
DEVELOPER_DIR: /Applications/Xcode_13.1.app/Contents/Developer

jobs:
build:
runs-on: macos-11
runs-on: macos-13
steps:

- uses: actions/checkout@v2
with:
fetch-depth: 0

- name: import certs
run: |
echo `/usr/bin/xcodebuild -version`
openssl aes-256-cbc -k "${{ secrets.ENCRYPTION_SECRET }}" -in ".github/certs/dist.p12.enc" -d -a -out ".github/certs/dist.p12" -md md5
- name: setup Go
uses: actions/setup-go@v2
uses: actions/setup-go@v3
with:
go-version: 1.21.x

- uses: maxim-lobanov/setup-xcode@v1
with:
go-version: 1.18.x
xcode-version: latest-stable

- name: install deps
run: |
bash install_dependency.sh

- name: update beta build version
if: contains(github.event.head_commit.message, '[beta]') && !startsWith(github.ref, 'refs/tags/')

- name: update dev build version
if: ${{!startsWith(github.ref, 'refs/tags/')}}
run: |
tag=`git describe --abbrev=0`.`date '+%m%d%H%M%S'`
bundle exec fastlane run increment_build_number_in_plist build_number:"${tag}" scheme:"ClashX"
bundle exec fastlane run increment_version_number_in_plist version_number:"${tag}" scheme:"ClashX"
bundle exec fastlane run set_info_plist_value path:ClashX/Info.plist key:BETA value:true

- name: update tag build version
if: startsWith(github.ref, 'refs/tags/')
run: |
bundle exec fastlane beta
bundle exec fastlane run set_info_plist_value path:ClashX/Info.plist key:BETA value:YES
tag=${GITHUB_REF##*/}
bundle exec fastlane run set_info_plist_value path:ClashX/Info.plist key:BETA value:false
bundle exec fastlane run increment_build_number_in_plist build_number:"${tag}" scheme:"ClashX"
bundle exec fastlane run increment_version_number_in_plist version_number:"${tag}" scheme:"ClashX"

- name: build
env:
Expand All @@ -39,40 +56,42 @@ jobs:
cd ..
bundle exec fastlane build
echo "Checking SMJobBless Vailded"
python SMJobBlessUtil.py check ClashX.app
python3 SMJobBlessUtil.py check ClashX.app
echo "Check done"

- name: setup node
if: startsWith(github.ref, 'refs/tags/') || contains(github.event.head_commit.message, '[appcenter]')
uses: actions/setup-node@v1
if: startsWith(github.ref, 'refs/tags/') || contains(github.event.head_commit.message, '[beta]')
uses: actions/setup-node@v3
with:
node-version: '10.x'
node-version: '18.x'

- name: create dmg
if: startsWith(github.ref, 'refs/tags/') || contains(github.event.head_commit.message, '[appcenter]')
if: startsWith(github.ref, 'refs/tags/') || contains(github.event.head_commit.message, '[beta]')
run: |
npm install --global create-dmg
create-dmg ClashX.app
mv ClashX*.dmg ClashX.dmg

- name: notarize
if: startsWith(github.ref, 'refs/tags/') || contains(github.event.head_commit.message, '[notarize]')
- name: notarize
if: startsWith(github.ref, 'refs/tags/') || contains(github.event.head_commit.message, '[beta]')
env:
FASTLANE_PASSWORD: ${{ secrets.FASTLANE_PASSWORD }}
FASTLANE_USER: ${{ secrets.FASTLANE_USER }}
FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD: ${{ secrets.FASTLANE_PASSWORD }}
run: |
bundle exec fastlane run notarize package:"./ClashX.dmg" bundle_id:"com.west2online.ClashX" asc_provider:MEWHFZ92DY

- name: upload to appcenter
if: startsWith(github.ref, 'refs/tags/') || contains(github.event.head_commit.message, '[appcenter]')
- name: upload to appcenter
if: startsWith(github.ref, 'refs/tags/') || contains(github.event.head_commit.message, '[beta]')
env:
APPCENTER_DISTRIBUTE_UPLOAD_BUILD_ONLY: true
APPCENTER_DISTRIBUTE_DESTINATIONS: Public
APPCENTER_APP_NAME: ClashX
APPCENTER_API_TOKEN: ${{ secrets.APPCENTER_API_TOKEN }}
APPCENTER_DISTRIBUTE_FILE: ClashX.dmg
APPCENTER_OWNER_NAME: ${{ secrets.APPCENTER_OWNER_NAME }}
APPCENTER_DISTRIBUTE_DSYM: "ClashX.app.dSYM.zip"
APPCENTER_DISTRIBUTE_RELEASE_NOTES: ${{ github.event.head_commit.message }}
run: |
appversion=`defaults read \`pwd\`/ClashX.app/Contents/Info.plist CFBundleShortVersionString`
buildVersion=`defaults read \`pwd\`/ClashX.app/Contents/Info.plist CFBundleVersion`
Expand All @@ -86,7 +105,9 @@ jobs:
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
files: ClashX.dmg
files: |
ClashX.app.dSYM.zip
ClashX.dmg
draft: true
prerelease: true

Expand Down
29 changes: 29 additions & 0 deletions .github/workflows/pull_request.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: ClashX

on: [ pull_request ]

env:
FASTLANE_SKIP_UPDATE_CHECK: true

jobs:
build:
runs-on: macos-13
steps:
- uses: actions/checkout@v3

- name: setup Go
uses: actions/setup-go@v3
with:
go-version: 1.20.x

- uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: latest-stable

- name: install deps
run: |
bash install_dependency.sh
- name: check
run: |
bundle exec fastlane check
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,6 @@ ClashX/goClash/goClash.a
fastlane/report.xml
ClashX/Resources/Country.mmdb.gz
.bundle/config
*.app/**
ClashX.app.dSYM.zip
build_derived_data
25 changes: 25 additions & 0 deletions .swiftlint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# By default, SwiftLint uses a set of sensible default rules you can adjust:
disabled_rules: # rule identifiers turned on by default to exclude from running
- colon
- identifier_name
- force_cast
- closure_parameter_position
- file_length
- large_tuple
- type_body_length
- cyclomatic_complexity
- function_body_length
- nesting
opt_in_rules: # some rules are turned off by default, so you need to opt-in
- empty_count
- empty_string
included: # paths to include during linting. `--path` is ignored if present.
- ClashX
excluded: # paths to ignore during linting. Takes precedence over `included`.
- ClashX/Vendor
- Pods
analyzer_rules: # Rules run by `swiftlint analyze`
- explicit_self
# implicitly
line_length: 300
# reporter: "xcode"
Loading
Loading