Sometime O365 SharePoint Online will not allow uninstall app hosted. It will give you error as “Some things went wrong” or “Unable to Uninstall” and gives you message something like e-Discovery or retention polity contact Administrator.
Such case if you try to deploy app using Visual Studio then you will get error:
Script to Uninstall:
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client")
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client.Runtime")
Function Get-ClientContext([string]$Url,[string]$UserName,[string]$Password)
{
$SecurePassword = $Password | ConvertTo-SecureString -AsPlainText -Force
$context = New-Object Microsoft.SharePoint.Client.ClientContext($Url)
$context.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($UserName, $SecurePassword)
return $context
}
Function Uninstall-AppInstance([Microsoft.SharePoint.Client.ClientContext]$Context,[Guid]$AppInstanceId)
{
$appInst = $Context.Web.GetAppInstanceById($AppInstanceId)
$appInst.Uninstall()
$context.ExecuteQuery()
}
$UserName = "rijwan@sharepoint.com"
$Password = Read-Host -Prompt "Enter the password"
$Url = "https://rijwan.sharepoint.com/"
$AppInstanceid = New-Object Guid("XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX") #specify App Instance Id here
$context = Get-ClientContext -Url $Url -UserName $UserName -Password $Password
Uninstall-AppInstance -Context $context -AppInstanceId $AppInstanceid
$context.Dispose()
How to get App Instance Id:
Click on App setting (…)
Click Details of App
Check the URL: (Ex: https://rijwan.sharepoint.com/sites/appdev/_layouts/15/AppMonitoringDetails.aspx?AppInstanceId=ccf0108c-f95c-489f-91fe-b1345a7f27de)
App Instance ID: ccf0108c-f95c-489f-91fe-b1345a7f27de
This way we can get App Instance ID and using above PS script let us delete app.