chore: be able to change feather's app icon when using certificate with different App ID
This is a general thing that happens when an app is signed with a cert that uses a different app id for provisioning(which also affects feather when signed as such) the call to setAlternateAppicon just returns OSError -52, there might be a way to do some objc hooking to get around this but I'm not sure, figured I'd raise this anyway, close if you don't think it's worth looking at
as a followup on this, fairly confident that keychain patches similar to https://github.com/dayanch96/YTLite/blob/main/Sideloading.x should do the trick, however not super duper sure which parts specifically cause this
Would you know a way to do have something similar for missing network entitlements in certificates? this is useful information yes but app icon isn't really a priority
though I would like the local installation to work without entitlements but it seems unlikely
I don't believe circumventing that is possible without some type of elevated access ie TS/JB, these app dir, keychain and app icon thingies are more of a 'side effect' of using different app ids with those bundle ids so you can do some logos hooking, but I'm not really qualified to speak on the proper permission stuff, there's definitely smarter people than me out there
Okay I've figured out a pretty lame way to fix these issues, it all works fine if you use the app id tied to the provisioning profile (without the team id) as bundle identifier. I've tried to hook into the stuff that uses bundle ids and return the id from the embedded provisioning file (can be seen here) but unfortunately it seems this is most likely some OS level issue that is breaking functionality when the app id and bundle id don't match 😔
I don't think this one is particularly relevant anymore, I doubt anyone except me really is bothered by it so Imma just close for now
I'm going to take a crack at this @castdrian
Let me know if you figure anything out, whilst I closed this it really bugs my OCD into oblivion, I'd love to see a general solution for this
Let me know if you figure anything out, whilst I closed this it really bugs my OCD into oblivion, I'd love to see a general solution for this
Do you actully have ocd @castdrian ?
I am actively researching this.
@castdrian Hooks will be pointless for this, but I just finished writing something that updates keys (CFBundleIdentifier, LSItemContentTypes, CFBundleURLName, UTTypeIdentifier etc.) within the .ipa's info.plist based on the extracted app id (parses out the team id) from the .mobileprovision so that we can use CFBundleAlternateIcons. It's doable with ZIPFoundation & Foundation. Let me know if you think this would be useful to implement within Feather, as it looks like the only solution without privileges.
This is the best we can do right now-- potentially integrate this into Feather but limited by only being able to have one app per bundle ID. I'm going to close this issue; unfortunately there doesn't seem to be a perfect solution yet.