diff --git a/ClashX.xcodeproj/project.pbxproj b/ClashX.xcodeproj/project.pbxproj index dcb5eb0df..c1e4a89c7 100644 --- a/ClashX.xcodeproj/project.pbxproj +++ b/ClashX.xcodeproj/project.pbxproj @@ -889,7 +889,7 @@ CODE_SIGN_IDENTITY = "Developer ID Application"; CODE_SIGN_STYLE = Manual; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1.20.4; + CURRENT_PROJECT_VERSION = 1.30.0; DEVELOPMENT_TEAM = MEWHFZ92DY; ENABLE_HARDENED_RUNTIME = YES; FRAMEWORK_SEARCH_PATHS = ( @@ -911,7 +911,7 @@ "$(PROJECT_DIR)/ClashX/goClash", ); MACOSX_DEPLOYMENT_TARGET = 10.12; - MARKETING_VERSION = 1.20.4; + MARKETING_VERSION = 1.30.0; PRODUCT_BUNDLE_IDENTIFIER = com.west2online.ClashX; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -931,7 +931,7 @@ CODE_SIGN_IDENTITY = "Developer ID Application"; CODE_SIGN_STYLE = Manual; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 1.20.4; + CURRENT_PROJECT_VERSION = 1.30.0; DEVELOPMENT_TEAM = MEWHFZ92DY; ENABLE_HARDENED_RUNTIME = YES; FRAMEWORK_SEARCH_PATHS = ( @@ -953,7 +953,7 @@ "$(PROJECT_DIR)/ClashX/goClash", ); MACOSX_DEPLOYMENT_TARGET = 10.12; - MARKETING_VERSION = 1.20.4; + MARKETING_VERSION = 1.30.0; OTHER_CODE_SIGN_FLAGS = "--timestamp"; PRODUCT_BUNDLE_IDENTIFIER = com.west2online.ClashX; PRODUCT_NAME = "$(TARGET_NAME)"; diff --git a/ClashX/AppDelegate.swift b/ClashX/AppDelegate.swift index 20ea13db3..938dd92d7 100644 --- a/ClashX/AppDelegate.swift +++ b/ClashX/AppDelegate.swift @@ -49,8 +49,8 @@ class AppDelegate: NSObject, NSApplicationDelegate { @IBOutlet var copyExportCommandMenuItem: NSMenuItem! @IBOutlet var copyExportCommandExternalMenuItem: NSMenuItem! @IBOutlet var experimentalMenu: NSMenu! - @IBOutlet weak var externalControlSeparator: NSMenuItem! - + @IBOutlet var externalControlSeparator: NSMenuItem! + var disposeBag = DisposeBag() var statusItemView: StatusItemView! var isSpeedTesting = false @@ -75,6 +75,7 @@ class AppDelegate: NSObject, NSApplicationDelegate { statusItemView.frame = CGRect(x: 0, y: 0, width: statusItemLengthWithSpeed, height: 22) statusMenu.delegate = self setupStatusMenuItemData() + AppVersionUtil.showUpgradeAlert() DispatchQueue.main.async { self.postFinishLaunching() } diff --git a/ClashX/General/Utils/AppVersionUtil.swift b/ClashX/General/Utils/AppVersionUtil.swift index bfcc13200..44465895e 100644 --- a/ClashX/General/Utils/AppVersionUtil.swift +++ b/ClashX/General/Utils/AppVersionUtil.swift @@ -40,3 +40,18 @@ class AppVersionUtil: NSObject { return shared.lastVersionNumber != currentVersion } } + +extension AppVersionUtil { + static func showUpgradeAlert() { + if hasVersionChanged && currentVersion.hasPrefix("1.30.0") && !isFirstLaunch { + let alert = NSAlert() + alert.messageText = NSLocalizedString("This version of ClashX contains a break change due to clash core 1.0 released. Check if your config is not working properly.", comment: "") + alert.alertStyle = .informational + alert.addButton(withTitle: NSLocalizedString("OK", comment: "")) + alert.addButton(withTitle: NSLocalizedString("Details", comment: "")) + if alert.runModal() == .alertSecondButtonReturn { + NSWorkspace.shared.open(URL(string: "https://github.com/Dreamacro/clash/wiki/breaking-changes-in-1.0.0")!) + } + } + } +} diff --git a/ClashX/Support Files/en.lproj/Localizable.strings b/ClashX/Support Files/en.lproj/Localizable.strings index 9920c647a..6fa78c4b3 100644 --- a/ClashX/Support Files/en.lproj/Localizable.strings +++ b/ClashX/Support Files/en.lproj/Localizable.strings @@ -160,3 +160,9 @@ /* No comment provided by engineer. */ "Use reload config to try reconnect." = "Use reload config to try reconnect."; + +/* No comment provided by engineer. */ +"Details" = "Details"; + +/* No comment provided by engineer. */ +"This version of ClashX contains a break change due to clash core 1.0 released. Check if your config is not working properly." = "This version of ClashX contains a break change due to clash core 1.0 released. Check if your config is not working properly."; diff --git a/ClashX/Support Files/zh-Hans.lproj/Localizable.strings b/ClashX/Support Files/zh-Hans.lproj/Localizable.strings index 8aba6cbf2..da1c95e9c 100644 --- a/ClashX/Support Files/zh-Hans.lproj/Localizable.strings +++ b/ClashX/Support Files/zh-Hans.lproj/Localizable.strings @@ -160,3 +160,9 @@ /* No comment provided by engineer. */ "Use reload config to try reconnect." = "使用重载配置文件按钮尝试重新连接"; + +/* No comment provided by engineer. */ +"Details" = "查看详情"; + +/* No comment provided by engineer. */ +"This version of ClashX contains a break change due to clash core 1.0 released. Check if your config is not working properly." = "由于Clash Core发布1.0版本,使用此版本的ClashX可能需要更新配置内容,前往 https://github.com/Dreamacro/clash/wiki/breaking-changes-in-1.0.0 查看详情"; diff --git a/ClashX/goClash/go.mod b/ClashX/goClash/go.mod index 0231b331c..bbd169529 100644 --- a/ClashX/goClash/go.mod +++ b/ClashX/goClash/go.mod @@ -1,7 +1,7 @@ module github.com/yichengchen/clashX/ClashX require ( - github.com/Dreamacro/clash v0.20.1-0.20200611141947-1c760935f4e5 + github.com/Dreamacro/clash v1.0.1-0.20200709022705-35449bfa177e github.com/oschwald/geoip2-golang v1.4.0 github.com/phayes/freeport v0.0.0-20180830031419-95f893ade6f2 ) diff --git a/ClashX/goClash/go.sum b/ClashX/goClash/go.sum index a363ec4c1..e0ae44845 100644 --- a/ClashX/goClash/go.sum +++ b/ClashX/goClash/go.sum @@ -1,5 +1,5 @@ -github.com/Dreamacro/clash v0.20.1-0.20200611141947-1c760935f4e5 h1:zSrtHXnU9CryAcHd/qii1MDOrEKXgdyfchHduttAraQ= -github.com/Dreamacro/clash v0.20.1-0.20200611141947-1c760935f4e5/go.mod h1:gwzl5HsWscK0+w+wqUq4SG4tYB1V8GFyGC6/OpN/98A= +github.com/Dreamacro/clash v1.0.1-0.20200709022705-35449bfa177e h1:+oNo5RETw7CMySEUfCpYyperd+XkyoDL9AwJmHMfxqs= +github.com/Dreamacro/clash v1.0.1-0.20200709022705-35449bfa177e/go.mod h1:gwzl5HsWscK0+w+wqUq4SG4tYB1V8GFyGC6/OpN/98A= github.com/Dreamacro/go-shadowsocks2 v0.1.5 h1:BizWSjmwzAyQoslz6YhJYMiAGT99j9cnm9zlxVr+kyI= github.com/Dreamacro/go-shadowsocks2 v0.1.5/go.mod h1:LSXCjyHesPY3pLjhwff1mQX72ItcBT/N2xNC685cYeU= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= diff --git a/ClashX/goClash/main.go b/ClashX/goClash/main.go index 1f843254f..588a7ac38 100644 --- a/ClashX/goClash/main.go +++ b/ClashX/goClash/main.go @@ -65,6 +65,14 @@ func parseDefaultConfigThenStart(checkPort, allowLan bool) (*config.Config, erro cfg.General.MixedPort = 7890 } + if cfg.General.SocksPort == cfg.General.MixedPort { + cfg.General.SocksPort = 0 + } + + if cfg.General.Port == cfg.General.MixedPort { + cfg.General.Port = 0 + } + } if checkPort { @@ -108,7 +116,7 @@ func verifyClashConfig(content *C.char) *C.char { //export run func run(checkConfig, allowLan bool) *C.char { - cfg, err := parseDefaultConfigThenStart(checkConfig,allowLan) + cfg, err := parseDefaultConfigThenStart(checkConfig, allowLan) if err != nil { return C.CString(err.Error()) }