• 0 Posts
  • 3 Comments
Joined 11 months ago
cake
Cake day: October 21st, 2023

help-circle


  • Hi I doubt anyone is going to see this but also as a developer this is quite exciting. Some MacOS apps have an app store compliant version, and a more supercharged version that, for instance, accesses private APIs. Now this will also be an option on IOS. For instance, making a music app and want to know what the app user is currently listening to? Well you can do

    let bundle = CFBundleCreate(kCFAllocatorDefault, NSURL(fileURLWithPath: "/System/Library/PrivateFrameworks/MediaRemote.framework"))
    guard let MRMediaRemoteGetNowPlayingInfoPointer = CFBundleGetFunctionPointerForName(bundle, "MRMediaRemoteGetNowPlayingInfo" as CFString) else { return }
    typealias MRMediaRemoteGetNowPlayingInfoFunction = @convention(c) (DispatchQueue, @escaping ([String: Any]) -> Void) -> Void
    let MRMediaRemoteGetNowPlayingInfo = unsafeBitCast(MRMediaRemoteGetNowPlayingInfoPointer, to: MRMediaRemoteGetNowPlayingInfoFunction.self)
    MRMediaRemoteGetNowPlayingInfo(DispatchQueue.main, { (information) in
        let bundleInfo = Dynamic._MRNowPlayingClientProtobuf.initWithData(information["kMRMediaRemoteNowPlayingInfoClientPropertiesData"])
        print("song: \(information["kMRMediaRemoteNowPlayingInfoTitle"] as! String), author: \(information["kMRMediaRemoteNowPlayingInfoArtist"] as! String), app: \(bundleInfo.displayName.asString!)")
    })
    

    but the second this code lands in your app it sure as hell won’t be getting accepted to the app store. This is just one example, there’s a world of opportunity here. It’s not just for installing emulators & modded apps. It’s a tool that will enable developers to do more with their apps, as they can freely do all sorts of things apple would not tolerate on the app store