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

问题描述:

在安装之前,Xcode(4.6)有没有办法在设备上删除应用程序?Xcode - 在设备上运行之前删除应用程序

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

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

我认为你应该向苹果提出一个错误/功能要求!该功能对我来说非常方便!

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

如何创建Xcode构建脚本来退出模拟器,然后删除模拟器应用程序目录的内容。该目录是

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

好主意,但我需要从设备 – giorashc 2013-03-07 09:11:20

的XCode没有为每次运行时从设备中自动删除该应用程序提供了一个选项,但最简单的方法是使用“设备”屏幕中点击将其删除。

Link to the Apple documentation

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

但你可以写一个简单的函数从这样的一次运行清理所有应用资源:

 
- (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]; 
     }]; 
    }]; 
} 
+0

我应该在哪里把这个删除?在viewDidLoad()开头? – Andrej 2015-08-29 13:09:26

+2

@Andrej,在'[MagicalRecord setupCoreDataStack]'行后面的AppDelegate中调用这个方法。但请注意,您必须手动清理您的应用**可能**写入某处的所有数据。 – 2015-08-31 05:01:41

当然可以。

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

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

然后做一个脚本在Xcode中的生成配置,如:http://www.runscriptbuildphase.com/

+0

让我补充一点,安装** ideviceinstaller **的简单方法是遵循[macappstore.org/ideviceinstaller](http://macappstore.org/ideviceinstaller/) – SirEnder 2017-03-28 02:34:20

+0

中的说明。另外,如果您在运行' --uninstall'命令,您碰巧遇到错误:**“无法连接到lockdownd。退出。”**,然后访问:[github.com/libimobiledevice/ideviceinstaller/issues/58](https://github。 COM/libimobiledevice/ideviceinstaller /问题/ 58) – SirEnder 2017-03-28 03:17:24