Assign app groups and download provisioning profile

This commit is contained in:
nab138
2026-02-13 08:20:42 -05:00
parent 728c61e4ee
commit d007f259c1
2 changed files with 48 additions and 8 deletions

View File

@@ -7,6 +7,7 @@ use crate::dev::{
use plist_macro::plist; use plist_macro::plist;
use rootcause::prelude::*; use rootcause::prelude::*;
use serde::Deserialize; use serde::Deserialize;
use tracing::info;
#[derive(Debug, Clone, Deserialize)] #[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")] #[serde(rename_all = "camelCase")]
@@ -91,6 +92,28 @@ pub trait AppGroupsApi {
Ok(()) Ok(())
} }
async fn ensure_app_group(
&mut self,
team: &DeveloperTeam,
name: &str,
identifier: &str,
device_type: impl Into<Option<DeveloperDeviceType>> + Send,
) -> Result<AppGroup, Report> {
let device_type = device_type.into();
let groups = self.list_app_groups(team, device_type.clone()).await?;
let matching_group = groups.iter().find(|g| g.identifier == identifier);
if let Some(group) = matching_group {
Ok(group.clone())
} else {
info!("Adding application group");
let group = self
.add_app_group(team, name, identifier, device_type)
.await?;
Ok(group)
}
}
} }
impl AppGroupsApi for DeveloperSession { impl AppGroupsApi for DeveloperSession {

View File

@@ -1,5 +1,7 @@
use crate::{ use crate::{
dev::{ dev::{
app_groups::AppGroupsApi,
app_ids::AppIdsApi,
developer_session::DeveloperSession, developer_session::DeveloperSession,
devices::DevicesApi, devices::DevicesApi,
teams::{DeveloperTeam, TeamsApi}, teams::{DeveloperTeam, TeamsApi},
@@ -98,15 +100,8 @@ impl Sideloader {
main_app_id_str main_app_id_str
); );
} }
};
for app_id in app_ids.iter_mut() {
app_id
.ensure_group_feature(&mut self.dev_session, &team)
.await?;
// TODO: Increased memory entitlement
} }
.clone();
let group_identifier = format!( let group_identifier = format!(
"group.{}", "group.{}",
@@ -117,6 +112,28 @@ impl Sideloader {
} }
); );
let app_group = self
.dev_session
.ensure_app_group(&team, &main_app_name, &group_identifier, None)
.await?;
for app_id in app_ids.iter_mut() {
app_id
.ensure_group_feature(&mut self.dev_session, &team)
.await?;
self.dev_session
.assign_app_group(&team, &app_group, app_id, None)
.await?;
// TODO: Increased memory entitlement
}
let provisioning_profile = self
.dev_session
.download_team_provisioning_profile(&team, &main_app_id, None)
.await?;
Ok(()) Ok(())
} }