Skip to content

Load app extensions from both supported directories - #28

Open
LosFarmosCTL wants to merge 1 commit into
nab138:mainfrom
LosFarmosCTL:fix/cascade-extension-bundle-ids
Open

LosFarmosCTL wants to merge 1 commit into
nab138:mainfrom
LosFarmosCTL:fix/cascade-extension-bundle-ids

Conversation

@LosFarmosCTL

Copy link
Copy Markdown

Fixes nab138/iloader#394

should be pretty self-explanatory, actually includes the Extensions/ subfolder as well, on top of the PlugIns one. There is just one issue, this change alone wouldn't be enough to close the iLoader issue, while the extension now gets picked up, apple-codesign-quick still needs the same change - I've opened a PR for this over there as well: Dadoum/apple-crates#6

If both of them are merged, iLoader should be able to handle these kinds of bundles. I've verified this using the minimal example and with both changes I was able to load the Instagram including the working lock screen camera extension (currently the example is broken in main but pretty easily fixed, I've appended the code here if anyone finds it useful for trialing)

minimal example fix

diff --git a/examples/minimal/src/main.rs b/examples/minimal/src/main.rs
--- a/examples/minimal/src/main.rs
+++ b/examples/minimal/src/main.rs
@@ -6,8 +6,11 @@ use isideload::{
         certificates::DevelopmentCertificate, developer_session::DeveloperSession,
         teams::DeveloperTeam,
     },
-    sideload::{SideloaderBuilder, TeamSelection, builder::MaxCertsBehavior},
-    util::keyring_storage::KeyringStorage,
+    sideload::{
+        SideloaderBuilder, TeamSelection,
+        builder::{ExtensionsBehavior, ExtensionsBehaviorSelection, MaxCertsBehavior},
+    },
+    util::{callbacks::ExtensionsBehaviorCallbackBox, keyring_storage::KeyringStorage},
 };
 use std::{env, path::PathBuf};
 
@@ -188,6 +191,11 @@ async fn main() {
     let mut sideloader = SideloaderBuilder::new(dev_session, apple_id.to_string())
         .team_selection(TeamSelection::PromptOnce(team_selection_prompt))
         .max_certs_behavior(MaxCertsBehavior::Prompt(cert_selection_prompt))
+        .extensions_behavior(
+            ExtensionsBehaviorSelection::<ExtensionsBehaviorCallbackBox>::Fixed(
+                ExtensionsBehavior::RegisterAll,
+            ),
+        )
         .storage(Box::new(KeyringStorage::new("minimal".to_string())))
         .machine_name("isideload-minimal".to_string())
         .build();

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Extention id cascade problem

1 participant