solid / bundle_version
准备好使用的AppStore和Google Play包版本解析工具
2.0.1
2020-03-20 02:53 UTC
Requires
- php: ^7.1.3
- ext-dom: *
- ext-json: *
- ext-libxml: *
- guzzlehttp/guzzle: ~6.0
Requires (Dev)
- phpunit/phpunit: ^7.5
This package is auto-updated.
Last update: 2024-09-20 12:56:58 UTC
README
一个小型工具集,可让您检查当前部署在GooglePlay和AppStore中的应用版本
安装
composer require solid/bundle_version
使用方法
每个商店都有自己的BundleVersionResolverInterface
具体实现,例如GooglePlayVersionResolver
,AppStoreVersionResolver
,您只需将其$bundleId
传递给其resolve($bundleId)
方法。成功时,您将收到包含$bundleId
和$currentRevision
值的VersionQueryResultDTO
结果或异常情况下的FailedToResolveGooglePlayVersionException
实例
GooglePlay示例
use Solid\VersionChecker\Clients\GooglePlay\Exceptions\FailedToResolveGooglePlayVersionException; use Solid\VersionChecker\Clients\GooglePlay\GooglePlayVersionResolver; use GuzzleHttp\Client; try { $resolver = new GooglePlayVersionResolver(new Client); $version = $this->resolver->resolve('com.app.example'); echo $version->getBundleId() . ':' . $version->getCurrentRevision(); } catch(FailedToResolveGooglePlayVersionException $e) { echo 'Failed to resolve version'; }
这将输出com.app.example:1.0.0
或错误情况下的Failed to resolve version
AppStore示例
use Solid\VersionChecker\Clients\AppStore\AppStoreVersionResolver; use Solid\VersionChecker\Clients\AppStore\Exceptions\FailedToResolveAppStoreVersionException; use GuzzleHttp\Client; try { $resolver = new AppStoreVersionResolver(new Client); $version = $this->resolver->resolve('com.app.example'); echo $version->getBundleId() . ':' . $version->getCurrentRevision(); } catch(FailedToResolveAppStoreVersionException $e) { echo 'Failed to resolve version'; }
这将输出com.app.example:1.0.0
或错误情况下的Failed to resolve version
版本比较器
该包还提供了一个现成的版本比较算法,可让您执行版本检查
use Solid\VersionChecker\Clients\GooglePlay\Exceptions\FailedToResolveGooglePlayVersionException; use Solid\VersionChecker\Clients\GooglePlay\GooglePlayVersionResolver; use Solid\VersionChecker\Clients\AppStore\AppStoreVersionResolver; use Solid\VersionChecker\Clients\AppStore\Exceptions\FailedToResolveAppStoreVersionException; use Solid\VersionChecker\Comparators\SemverComparator; use Solid\VersionChecker\Enums\VersionCompareResultEnum; use GuzzleHttp\Client; try { $httpClient = new Client; $appStoreResolver = new AppStoreVersionResolver($httpClient); $googlePlayResolver = new GooglePlayVersionResolver($httpClient); $appStoreVersion = $this->resolver->resolve('com.app.example'); $googlePlayVersion = $this->resolver->resolve('com.app.example'); $comparator = new SemverComparator(); $versionCompareResult = $comparator->compare($appStoreVersion->getCurrentRevision(), $googlePlayVersion->getCurrentRevision()) if($versionCompareResult->is(VersionCompareResultEnum::MAJOR)) { echo 'App store has newer major release than play store'; } else if($versionCompareResult->is(VersionCompareResultEnum::MINOR)) { echo 'App store has newer minor release than play store'; } else if($versionCompareResult->is(VersionCompareResultEnum::PATCH)) { echo 'App store has newer patch release than play store'; } else { echo 'App store and google play share same version'; } } catch(FailedToResolveAppStoreVersionException $e) { echo 'Failed to resolve app store version'; } catch(FailedToResolveGooglePlayVersionException $e) { echo 'Failed to resolve google play version'; }