Xcode - 在设备上运行之前删除应用程序

时间:2013-03-06 21:50:16

标签: ios iphone xcode

Xcode(4.6)中有没有办法在安装之前删除设备上的应用程序?

我需要它用于测试目的,如果在再次安装之前将应用程序从设备中删除,将会更容易。

7 个答案:

答案 0 :(得分:7)

是的,你可以。

获取https://github.com/libimobiledevice/ideviceinstaller

这使您能够在bash环境中使用ideviceinstaller --uninstall <app-id>

然后在xcode中的构建配置中执行脚本,例如:http://www.runscriptbuildphase.com/

答案 1 :(得分:5)

XCode不提供每次运行时自动从设备中删除应用程序的选项,但简单的方法是使用“设备”屏幕一键删除它。

Link to the Apple documentation

答案 2 :(得分:4)

唯一的方法是手动删除它。如果这就是你要求的,那么在每次运行之前都没有办法让xcode从设备中删除应用程序。对不起,这将是一个很棒的功能,但就目前而言,没有办法做到这一点。甚至不在模拟器上。

我认为您应该向苹果提交错误/功能请求!这个功能对我来说很方便!

答案 3 :(得分:4)

如何创建Xcode构建脚本以退出Simulator,然后删除Simulator Applications目录的内容。目录是

~/Library/Application Support/iPhone Simulator/6.1/Applications/

答案 4 :(得分:3)

不,没有办法自动删除应用程序。

但是您可以编写一个简单的函数来清除上次运行中的所有应用程序资源,如下所示:

- (void)cleanUp {
    NSString *appDomain = [[NSBundle mainBundle] bundleIdentifier];
    [[NSUserDefaults standardUserDefaults] removePersistentDomainForName:appDomain];

    [MagicalRecord saveWithBlockAndWait:^(NSManagedObjectContext *context) {
        [[NSManagedObjectModel MR_defaultManagedObjectModel].entities enumerateObjectsUsingBlock:^(NSEntityDescription *entityDescription, NSUInteger idx, BOOL *stop) {
            [NSClassFromString([entityDescription managedObjectClassName]) MR_truncateAllInContext:context];
        }];
    }];
}

答案 5 :(得分:2)

与HackyStack一样,我认为您必须手动删除该应用。也就是说,您可以使用调试启动方法来清除安装期间未覆盖的内容。例如,删除文档目录的内容,与应用程序关联的钥匙串项,iCloud KV信息和文档等的方法。这将是一种痛苦,但可能会让你到达你想去的地方....

答案 6 :(得分:0)

使用macOS 10.15.2,Xcode11.3,iOS13.3(iPhone XS),iOS12.4.4(iPhone 5S)的工作解决方案

  • 安装:brew install移动设备(https://github.com/imkira/mobiledevice
  • 重新启动macOS
  • 创建/克隆方案
  • 将此行添加到“运行/预操作”中: mobiledevice uninstall_app com.example.bundleid