I'm not certain why you're having difficulty with your code at this time. I added code which mimics yours to my previous example and it is showing up in the available apps, even though linked with a dynamic group and another time with a static group.
Here is my code for reference:
static void Main(string[] args) { int groupID = 11; string appID = "com.sap.sapstore"; PolicyServiceClient svcPolicy = new PolicyServiceClient("NetTcpBinding_IPolicyService"); svcPolicy.ClientCredentials.Windows.ClientCredential.Domain = "mydomain"; svcPolicy.ClientCredentials.Windows.ClientCredential.UserName = "afaria"; svcPolicy.ClientCredentials.Windows.ClientCredential.Password = "Afaria"; ContextInfo ci = svcPolicy.InitContext(Guid.NewGuid().ToString("N")); Console.WriteLine("Now connected to server with contextID=" + ci.ContextId); svcPolicy.SetTenantIdContext(0); svcPolicy.SetServerIdContext("3i)oa"); //----------------------------------------------------------------------------------------------------- //New Enrollment Policy //----------------------------------------------------------------------------------------------------- DataState statePolicyEnrollment = svcPolicy.CreatePolicy(PolicyType.Enrollment, PolicySubtype.None, SupportedClients.Android); PolicyInfo policyInfo = svcPolicy.GetPolicyInfo(statePolicyEnrollment); policyInfo.Name = "Test Android Enrollment " + ci.ContextId;//add the context ID to make unique policy policyInfo.Enabled = true; svcPolicy.SetPolicyInfo(statePolicyEnrollment, policyInfo); EnrollmentCode eCode = svcPolicy.EnrollmentCreateEnrollmentCode(statePolicyEnrollment, UrlShorteningService.TinyUrl); policyInfo.Description = eCode.Code; Console.WriteLine("New enrollment code: " + eCode.Code); EnrollmentPolicySettingsAndroid policySetAndroid = (EnrollmentPolicySettingsAndroid)svcPolicy.EnrollmentGetPolicySettings(statePolicyEnrollment); policySetAndroid.Groups = new int[] { groupID }; policySetAndroid.EnrollmentCodes = new EnrollmentCode[] { eCode }; policySetAndroid.IncludeC2dmAccount = true; policySetAndroid.ConnectAfterInstall = true; policySetAndroid.ClientNameOption = ClientName.UserName; svcPolicy.EnrollmentSetPolicySettings(statePolicyEnrollment, policySetAndroid); svcPolicy.SetPolicyInfo(statePolicyEnrollment, policyInfo); svcPolicy.SavePolicy(statePolicyEnrollment, false); svcPolicy.Release(statePolicyEnrollment); //----------------------------------------------------------------------------------------------------- //New App Policy //----------------------------------------------------------------------------------------------------- DataState statePolicyApp = svcPolicy.CreatePolicy(PolicyType.Application, PolicySubtype.ApplicationIndirectlyHosted, SupportedClients.Android); PolicyInfo appPolicyInfo = svcPolicy.GetPolicyInfo(statePolicyApp); appPolicyInfo.Name = "Test Android App Store" + ci.ContextId;//add the context ID to make unique policy AppIndirectlyHostedPolicySettingsAndroidV002 appPolicySet = (AppIndirectlyHostedPolicySettingsAndroidV002)svcPolicy.ApplicationGetPolicySettingsV002(statePolicyApp); appPolicySet.StoreId = appID; appPolicySet.Validate = false; svcPolicy.ApplicationSetPolicySettingsV002(statePolicyApp, appPolicySet); svcPolicy.SetPolicyInfo(statePolicyApp, appPolicyInfo); svcPolicy.SetGroups(statePolicyApp, new int[] { groupID }); svcPolicy.SavePolicy(statePolicyApp, false); svcPolicy.Release(statePolicyApp); svcPolicy.CloseContext(); svcPolicy.Close(); Console.Write("Press any key to exit..."); Console.ReadKey(); }