首页
社区
课程
招聘
[原创]静默安装 设备UDID 进程间通信 后台保活
发表于: 2021-8-16 09:15 24841

[原创]静默安装 设备UDID 进程间通信 后台保活

2021-8-16 09:15
24841

项目地址

功能

  • 静默安装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.shmakefile中的 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 被小梁同学编辑 ,原因:
收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 0
活跃值: (131)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
2021-9-18 16:45
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3
梁总 666
2022-6-4 23:46
0
雪    币: 244
活跃值: (266)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
没闹明白 这句是什么意思 :pod 'KPAppMananger', :path => '../KPAppMananger'
2022-7-10 16:42
0
游客
登录 | 注册 方可回帖
返回
//