-
-
[原创]静默安装 设备UDID 进程间通信 后台保活
-
发表于:
2021-8-16 09:15
24889
-
[原创]静默安装 设备UDID 进程间通信 后台保活
项目地址
功能
- 静默安装APP,卸载,打开,监听。
- 进程间通信。
- 获取设备UDID。
- 后台保活。
集成
- 直接使用
1 | pod 'KPAppMananger' , :git = > 'https://github.com/LZRight123/KPAppMananger.git'
|
- clone到本地
1 2 | git clone https: / / github.com / LZRight123 / KPAppMananger.git
pod 'KPAppMananger' , :path = > '../KPAppMananger'
|
<!-- ## 配置
- copy script文件夹到项目目录
BuildPhases
-> Run Script
- 修改
test.sh
和makefile
中的 TARGET_NAME="AutoDownload"
重要
sh
sh script/test.sh
-->
用法
- 获取设备UDID
1 2 3 | [KPAppTool UDID]
/ / 获取设备信息,包括UDID 本机名称 机身颜色 等
[KPAppTool deviceInfo]
|
- 后台保活
Signing & Capabilities -> BackgroundModes -> Audio
```c
(BOOL)application:(UIApplication )application didFinishLaunchingWithOptions:(NSDictionary )launchOptions {
[[KPBackgroundTaskUtils sharedInstance] playNoVoliceBackgroundTask];
return YES;
}
(void)applicationDidEnterBackground:(UIApplication *)application {
[[KPBackgroundTaskUtils sharedInstance] applicationDidEnterBackgroundTask:application];
}
```
操作app
```c
/// 安装本地
[KPAppTool installAppWithIpaPath:self.ipaPath appIdentfier:nil block:^(NSString installDesc, NSString completionDesc) {
//...
}];
/// url
[KPAppTool installAppWithRemoteURL:@"your ipa url" downloadProgress:nil completion:nil];
/// 卸载
[KPAppTool uninstallApplication:nil options:nil];
/// 打开
[KPAppTool openApplicationWithBundleID:nil];
1 2 3 4 5 6 7 8 9 10 11 12 | - IPC通知
```c
/ / / 服务端:ping
[KPAppToolInstance pingTimeSecond: 3 ];
[KPAppToolInstance registerIPCNotfication:@ "kp.test.pong" callBack:^(NSString * name) {
/ / ....
}];
/ / / 客户端
[KPAppToolInstance recevicePingCallBack:^(NSString * name) {
NSLog(@ "接收到了ping: %@" , name);
[KPAppToolInstance postIPCNoftication:@ "kp.test.pong" ];
}];
|
进程间收发消息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | [KPLocalConnect registerLisenerAtPort: 5555 callBack:^NSDictionary * _Nonnull(NSString * _Nonnull path, NSDictionary * _Nonnull query) {
if ([path isEqualToString:@ "/xxxpath" ]) {
return @{
@ "path" : path?:@"",
@ "quey" : query?:@{},
};
}
return @{
@ "msg" : @ "path is error" ,
};
}];
/ / / 客户端
[KPLocalConnect getAtPort: 5555 path:@ "xxxpath" parameters:@{@ "key1" : @ "value" } completion:^(NSDictionary * _Nonnull response, NSError * _Nonnull error, NSURLSessionDataTask * _Nonnull task) {
NSLog(@ "response: %@" , response);;
}];
|
代码已整理成pod上传,Example后面有空补上
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
最后于 2021-8-16 09:20
被小梁同学编辑
,原因: