ios10下边越狱开发,安装和卸载app,签名如何写?

糊涂2020 2017-08-04 05:39:16
我在网上search了代码,写了一下,但是发现我这里无论如何在真机(iOS 10.2 已经越狱)上无法通过(模拟器上运行良好)。我怀疑是签名问题,求大神指教。
代码如下:
IPAResult installApp(NSString *ipaPath, NSString *ipaId) {
IPAResult ret = -1;
if (kCFCoreFoundationVersionNumber < 1140.10) {
void *lib = dlopen(KEY_SDKPATH, RTLD_LAZY);
if (lib) {
MobileInstallationInstall install = (MobileInstallationInstall)dlsym(lib, "MobileInstallationInstall");
if (install)
ret = install(ipaPath, [NSDictionary dictionaryWithObject:KEY_INSTALL_TYPE forKey:@"ApplicationType"], 0, ipaPath);
dlclose(lib);
}
} else {
NSLog(@"path:%@,id:%@", ipaPath, ipaId);
Class LSApplicationWorkspace_class = objc_getClass("LSApplicationWorkspace");
if (LSApplicationWorkspace_class) {
LSApplicationWorkspace *workspace = [LSApplicationWorkspace_class performSelector:@selector(defaultWorkspace)];

if (workspace && [workspace installApplication:[NSURL fileURLWithPath:ipaPath] withOptions:[NSDictionary dictionaryWithObject:ipaId forKey:@"CFBundleIdentifier"]])
ret = 0;

}
}
return ret;
}

BOOL uninstallApplication(NSString *appIdentifier) {
if (kCFCoreFoundationVersionNumber < 1140.10) {
void *lib = dlopen(KEY_SDKPATH, RTLD_LAZY);
if (lib) {
MobileInstallationUninstall uninstall = (MobileInstallationUninstall)dlsym(lib, "MobileInstallationUninstall");
if (uninstall)
return 0 == uninstall(appIdentifier, nil, nil);
dlclose(lib);
}
} else {
Class LSApplicationWorkspace_class = objc_getClass("LSApplicationWorkspace");
if (LSApplicationWorkspace_class) {
LSApplicationWorkspace *workspace = [LSApplicationWorkspace_class performSelector:@selector(defaultWorkspace)];
if (workspace && [workspace uninstallApplication:appIdentifier withOptions:nil])
return YES;
}

}
return NO;
}


签名如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>application-identifier</key>
<string>com.myapp.ipas</string>
<key>get-task-allow</key>
<true/>
<key>com.apple.private.mobileinstall.allowedSPI</key>
<array>
<string>CheckCapabilitiesMatch</string>
<string>InstallForLaunchServices</string>
<string>UninstallForLaunchServices</string>
</array>
<key>com.apple.backboardd.launchapplications</key>
<true/>
<key>com.apple.springboard.openapplications</key>
<true/>
</dict>
</plist>


...全文
1110 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
糊涂2020 2017-08-10
  • 打赏
  • 举报
回复
发现了原因,跟签名其实没啥关系,主要还是要获取到root权限才行。

29,027

社区成员

发帖
与我相关
我的任务
社区描述
主要讨论与iOS相关的软件和技术
社区管理员
  • iOS
  • 大熊猫侯佩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧