最近做 iOS 相关的事情比较多,发现其实 iOS 下还是有很多和 android 可以对应的操作,所以在此记录一下。

备注: iOS 用到的ideviceinstalleridevicesyslog 等命令安装命令为:brew install libimobiledevice

应用相关

1、 安装应用(真机)

Android

adb install xxx.apk

iOS

ideviceinstaller -i xxx.ipa

2、 卸载应用(真机)

Android

adb uninstall <packageName>

iOS

ideviceinstaller -U <bundleId>

3、 获取应用唯一标识

其实也不算唯一标识了,只是大部分操作会用到。

Android: packageName
获取方式很多,只举其中一个比较容易的:

$ apktool d xxx.apk -o xxx
$ cd xxx
$ cat AndroidManifest.xml | grep -o "package=\".*\"" | sed "s/package=\"//g" | sed "s/\"//g"
com.test

iOS:bundleId

$ unzip xxx.ipa
$ cd Payload/xxx.app
$ defaults read `pwd`/Info CFBundleIdentifier
com.test

4、从源码构建应用安装包

这里只举 debug 包

android(现在 android studio 项目已经很流行了,所以就不说 ant 了)

$ cd /source-folder/
# 注意:没***情况下貌似不能自动下载 gradle ,那么可以自行下载 gradle 后用 gradle 的 bin 文件代替此处的 gradlew 。
$ ./gradlew build
# build 完的 apk 包放在 Application/build/outputs/apk 中

iOS 真机

$ cd /source-folder/
$ PROJECT=<your-project-name>
$ xcodebuild clean -project $PROJECT.xcodeproj -configuration Debug -alltargets
$ xcodebuild archive -project $PROJECT.xcodeproj -scheme $PROJECT -archivePath $PROJECT.xcarchive
# 注意,末尾的 exportProvisioningProfile 参数值是在 Xcode 的 Performance->Accounts->Apple ID->View Details 窗口的下半部分看到的名称。如 iOS Team Provisioning Profile: chj.ToDoList
$ xcodebuild -exportArchive -archivePath $PROJECT.xcarchive -exportPath $PROJECT -exportFormat ipa -exportProvisioningProfile "your provision profile"
# build 完的 ipa 包直接就放在当前目录

设备相关

1、查看设备中的应用列表

Android

$ adb shell pm list packages
package:com.miui.gallery
package:com.xiaomi.tv.gallerylockscreen
...

如果有 drozer 的话能显示得更清晰

dz> run app.package.list
com.miui.gallery (图库)
com.xiaomi.tv.gallerylockscreen (锁屏画报)
...

iOS

$ ideviceinstaller [-u <device-udid>] -l
Total: 46 apps
com.xiaojukeji.didi - 滴滴出行 4.1.5.0
com.tencent.mqq - QQ 6.0.0.424
...

2、获取真机实时日志

Android

adb [-s <device-name>] logcat

iOS

idevicesyslog [-u <device-udid>]

3、获取当前连接的设备列表

Android

$ adb devices

iOS

# 注意:这里列出的设备包括模拟器及 mac 电脑本身
$ instruments -s devices

补充:
mac 安装以下内容:

brew install usbmuxd
brew install ideviceinstaller

可以获取 ios 手机的 udid

idevice_id -l

对于脚本中要使用默认设备的场景很方便。

暂时只想到这么多。大家如果有其他需要也可以提出,我找找有没有两个平台都能对应上的操作。


↙↙↙阅读原文可查看相关链接,并与作者交流