@@ -175,26 +175,45 @@ export default class AppUpdater {
175175 release : GithubReleaseInfo | null = null
176176 ) {
177177 logger . info ( 'Setting feed URL - testPlan:' , testPlan )
178+
179+ // 获取IP地址归属地
180+ const ipCountry = await this . _getIpCountry ( )
181+ logger . info ( 'Detected IP country:' , ipCountry )
182+ const isChinaUser = ipCountry . toLowerCase ( ) === 'cn'
183+
178184 if ( channel === UpgradeChannel . LATEST ) {
179185 this . autoUpdater . channel = UpgradeChannel . LATEST
180- this . autoUpdater . setFeedURL ( FeedUrl . GITHUB_LATEST )
181- logger . info ( 'Using GitHub latest releases for test plan' )
186+ if ( isChinaUser ) {
187+ this . autoUpdater . setFeedURL ( FeedUrl . PRODUCTION )
188+ logger . info ( 'Using production releases for CN user' )
189+ } else {
190+ this . autoUpdater . setFeedURL ( FeedUrl . GITHUB_LATEST )
191+ logger . info ( 'Using GitHub latest releases for test plan' )
192+ }
182193 return
183194 }
184195
185196 if ( testPlan && release ) {
186- const preReleaseUrl = `https://github.com/mkdir700/EchoPlayer/releases/download/${ release . tag_name } `
187- if ( preReleaseUrl ) {
188- this . autoUpdater . setFeedURL ( preReleaseUrl )
197+ if ( isChinaUser ) {
198+ // 为中国用户使用对应的预发布渠道
199+ const chineseFeedUrl = channel === UpgradeChannel . ALPHA ? FeedUrl . CN_ALPHA : FeedUrl . CN_BETA
200+ this . autoUpdater . setFeedURL ( chineseFeedUrl )
189201 this . autoUpdater . channel = channel
190- logger . info ( `Using pre-release URL: ${ preReleaseUrl } with channel: ${ channel } ` )
191- return
192- }
202+ logger . info ( `Using Chinese pre-release URL: ${ chineseFeedUrl } with channel: ${ channel } ` )
203+ } else {
204+ const preReleaseUrl = `https://github.com/mkdir700/EchoPlayer/releases/download/${ release . tag_name } `
205+ if ( preReleaseUrl ) {
206+ this . autoUpdater . setFeedURL ( preReleaseUrl )
207+ this . autoUpdater . channel = channel
208+ logger . info ( `Using pre-release URL: ${ preReleaseUrl } with channel: ${ channel } ` )
209+ return
210+ }
193211
194- // if no prerelease url, use lowest prerelease version to avoid error
195- logger . warn ( 'No prerelease URL found, falling back to lowest prerelease version' )
196- this . autoUpdater . setFeedURL ( FeedUrl . PRERELEASE_LOWEST )
197- this . autoUpdater . channel = UpgradeChannel . LATEST
212+ // if no prerelease url, use lowest prerelease version to avoid error
213+ logger . warn ( 'No prerelease URL found, falling back to lowest prerelease version' )
214+ this . autoUpdater . setFeedURL ( FeedUrl . PRERELEASE_LOWEST )
215+ this . autoUpdater . channel = UpgradeChannel . LATEST
216+ }
198217 return
199218 }
200219
@@ -203,7 +222,6 @@ export default class AppUpdater {
203222 this . autoUpdater . setFeedURL ( FeedUrl . PRODUCTION )
204223 logger . info ( 'Using production feed URL' )
205224
206- const ipCountry = await this . _getIpCountry ( )
207225 logger . info ( 'Detected IP country:' , ipCountry )
208226 if ( ipCountry . toLowerCase ( ) !== 'cn' ) {
209227 this . autoUpdater . setFeedURL ( FeedUrl . GITHUB_LATEST )
0 commit comments