feat: GetPackageInfo for ios device

This commit is contained in:
lilong.129
2024-12-23 17:38:50 +08:00
parent 985a0737f9
commit 2dac84de25
6 changed files with 39 additions and 17 deletions

View File

@@ -1 +1 @@
v5.0.0+2412202201
v5.0.0+2412231738

View File

@@ -518,7 +518,7 @@ func (dev *AndroidDevice) GetPackageInfo(packageName string) (AppInfo, error) {
appInfo.AppBaseInfo.VersionName = appVersion
} else {
log.Warn().Msg("failed to get package version")
return appInfo, err
return appInfo, errors.Wrap(code.DeviceGetInfoError, err.Error())
}
// get package path
@@ -527,7 +527,7 @@ func (dev *AndroidDevice) GetPackageInfo(packageName string) (AppInfo, error) {
appInfo.AppBaseInfo.AppPath = packagePath
} else {
log.Warn().Msg("failed to get package path")
return appInfo, err
return appInfo, errors.Wrap(code.DeviceGetInfoError, err.Error())
}
// get package md5
@@ -536,7 +536,7 @@ func (dev *AndroidDevice) GetPackageInfo(packageName string) (AppInfo, error) {
appInfo.AppBaseInfo.AppMD5 = packageMD5
} else {
log.Warn().Msg("failed to get package md5")
return appInfo, err
return appInfo, errors.Wrap(code.DeviceGetInfoError, err.Error())
}
return appInfo, nil

View File

@@ -270,7 +270,7 @@ type AppBaseInfo struct {
PackageName string `json:"packageName,omitempty"` // android package name
Activity string `json:"activity,omitempty"` // android activity
VersionName string `json:"versionName,omitempty"`
VersionCode int `json:"versionCode,omitempty"`
VersionCode string `json:"versionCode,omitempty"`
AppName string `json:"appName,omitempty"`
AppPath string `json:"appPath,omitempty"`
AppMD5 string `json:"appMD5,omitempty"`

View File

@@ -374,12 +374,9 @@ func (dev *IOSDevice) getAppInfo(packageName string) (appInfo AppInfo, err error
if app.CFBundleIdentifier == packageName {
appInfo.BundleId = app.CFBundleIdentifier
appInfo.AppName = app.CFBundleName
appInfo.VersionName = app.CFBundleShortVersionString
appInfo.PackageName = app.CFBundleIdentifier
versionCode, err := strconv.Atoi(app.CFBundleVersion)
if err == nil {
appInfo.VersionCode = versionCode
}
appInfo.VersionName = app.CFBundleShortVersionString
appInfo.VersionCode = app.CFBundleVersion
return appInfo, err
}
}
@@ -799,5 +796,34 @@ func (dev *IOSDevice) GetCurrentWindow() (WindowInfo, error) {
}
func (dev *IOSDevice) GetPackageInfo(packageName string) (AppInfo, error) {
return AppInfo{}, nil
svc, err := installationproxy.New(dev.d)
if err != nil {
return AppInfo{}, err
}
defer svc.Close()
apps, err := svc.BrowseAllApps()
if err != nil {
return AppInfo{}, err
}
for _, app := range apps {
if app.CFBundleIdentifier != packageName {
continue
}
return AppInfo{
Name: app.CFBundleName,
AppBaseInfo: AppBaseInfo{
BundleId: app.CFBundleIdentifier,
PackageName: app.CFBundleIdentifier,
VersionName: app.CFBundleShortVersionString,
VersionCode: app.CFBundleVersion,
AppName: app.CFBundleDisplayName,
AppPath: app.Path,
},
}, nil
}
return AppInfo{}, errors.Wrap(code.DeviceGetInfoError,
fmt.Sprintf("%s not found", packageName))
}

View File

@@ -73,7 +73,7 @@ func TestNewIOSDevice(t *testing.T) {
func TestIOSDevice_GetPackageInfo(t *testing.T) {
device, err := NewIOSDevice(WithWDAPort(8700))
checkErr(t, err)
appInfo, err := device.GetPackageInfo("com.apple.Preferences")
appInfo, err := device.GetPackageInfo("com.ss.iphone.ugc.Aweme")
checkErr(t, err)
t.Log(appInfo)
}

View File

@@ -14,7 +14,6 @@ import (
"os/exec"
"path/filepath"
"regexp"
"strconv"
"strings"
"syscall"
"time"
@@ -478,10 +477,7 @@ func (wd *wdaDriver) GetForegroundApp() (appInfo AppInfo, err error) {
appInfo.BundleId = app.CFBundleIdentifier
appInfo.PackageName = app.CFBundleIdentifier
appInfo.VersionName = app.CFBundleShortVersionString
versionCode, err := strconv.Atoi(app.CFBundleVersion)
if err == nil {
appInfo.VersionCode = versionCode
}
appInfo.VersionCode = app.CFBundleVersion
return appInfo, err
}
}