Skip to content

Completely support iPadOS (iPad) & iOS (iPhone) apps #321

Description

@dbrookman

Notes

It appears that the data structure in CKSoftwareMap (from CommerceKit, a macOS private framework) that lists the apps installed from the Mac App Store (which is used by mas) doesn't include installed iOS or iPadOS apps.

Spotlight contains some info about installed iOS & iPadOS along with installed macOS apps, but it does not seem to include the ADAM IDs for iOS or iPadOS apps.

We can look for other data sources that contain iOS & iPadOS along with their ADAM IDs (investigating private frameworks depends on #565).

Assuming that there are no other useful data sources, and that the known data sources behave as I suspect from the info I've seen, mas can:

Find installed apps via Spotlight instead of via CKSoftwareMap (done in mas 2.0.0)

  • ADAM IDs:
    • While Spotlight includes some data about iOS & iPadOS apps, it doesn't include ADAM IDs for them (but it does include ADAM IDs for macOS apps from the Mac App Store)
    • Spotlight does, however, include bundle IDs, which are unique per app.
    • Implement Support bundle IDs everywhere app IDs are currently used #541
    • Encourage users to use bundle IDs instead of ADAM IDs
    • If users use ADAM IDs, use the Apple iTunes Search Web API to lookup bundle IDs from ADAM IDs
  • App names:
    • Spotlight includes all the data that mas currently reads from objects returned from CKSoftwareMap, except it doesn't contain app names; it contains some data that might be similar to app names, but that can be off.
    • To provide missing app names, mas can query the Apple iTunes Search Web API.

The above is ridiculous, but it is the only currently known generic workaround.

Investigate for better sources of installed app data

  • pkgutil --pkg-info-plist <bundle-id>
  • /Applications/<app-dir-name>.app/Contents/_MASReceipt/receipt

See:

Original Issue

Your Environment

  • mas version: 1.8.0
  • macOS version: 11.2.1 (20D74)

mas Install Method

brew install mas (homebrew-core)

Describe the Bug

mas list, mas search, mas outdated do not show iOS apps that can be installed via the App Store on M1 macs.

To Reproduce

  1. Install an iOS app via the App Store.
  2. Run mas list

Expected Behavior

The installed iOS app should be among the apps listed.

Actual Behavior

The iOS app is not among the apps listed.

Activity

  1. phatblat commented on Mar 20, 2021

    @phatblat
    Member

    The is a great idea for a new feature. I had to send my DTK back, but while I had it I only installed iOS app through Xcode. Can you install them from the Mac App Store?

  2. dbrookman commented on Mar 21, 2021

    @dbrookman
    Author

    Yeah, you install them from the mac App Store.
    When you search you're presented with the option to see iOS apps that you can install.
    Screen Shot 2021-03-21 at 11 22 57 AM

  3. phatblat commented on Mar 21, 2021

    @phatblat
    Member

    One thing that will need to change to support this is to change how the search and lookup commands work. Today they use the iTunes search web API and that has a filter for only macOS. Once we know the app identifier it may "just work".

    One thing you could try is to copy the URL for an iOS app from the store and look for the numeric identifier at the end (remove any letters). Then try mas install 1234 with that ID.

  4. dbrookman commented on Mar 23, 2021

    @dbrookman
    Author

    You're right, you can get the ID from the App Store website URL.
    I specifically tried Desert Golfing (ID: 902062673)

    mas info 902062673 works, returning:

    Desert Golfing 1.22 [1.99]
    By: Captain Games Inc.
    Released: 2017-12-05
    Minimum OS: 9.0
    Size: 2.2 MB
    From: https://apps.apple.com/us/app/desert-golfing/id902062673?uo=4
    

    mas install 902062673 brings up the following dialog:
    Screen Shot 2021-03-22 at 10 55 41 PM
    I suspect the Minimum OS mismatch might be the issue here.
    Clicking "Download Last Compatible" returns:

    ==> Downloading Desert Golfing
    Error: Download failed: The installation could not be started.
    

    Clicking "Cancel" (rather obviously) returns:

    Error: Download request failed: User selected cancel button
    

    Just to be sure, I double checked, and it installs from the App Store fine.

  5. iMonZ commented on Jun 25, 2022

    @iMonZ

    Would be so excited if this would be fixed!!!

  6. natterstefan commented on Oct 6, 2022

    @natterstefan

    Me too!

  7. jeeftor commented on May 16, 2024

    @jeeftor

    Is this being worked on or nay?

  8. chkpwd commented on Sep 8, 2024

    @chkpwd

    Pinging here to show support as well.

  9. changed the title [-]🐛 [BUG] iOS apps installed on M1 macs don't show up[/-] [+]Support iPadOS & iOS apps[/+] on Sep 14, 2024
  10. aescolastico commented on Nov 11, 2024

    @aescolastico

    +1 to hoping this gets support

  11. 28 remaining items

  12. brian163 commented on Feb 13, 2026

    @brian163

    I will give this a try first thing tomorrow.

  13. brian163 commented on Feb 13, 2026

    @brian163

    I realized this probably wasn't going to work since 'mas info' had previously returned "Error: No apps found in the App Store for ADAM ID 6545262709".

    But I tried just to be sure and did receive the same error.

    Apple clearly has some black magic fluckery going on with Apple Arcade (the "Games" app) and some tie-in to the App Store. I appreciate you looking at it for me though.

  14. rgoldberg commented on Feb 13, 2026

    @rgoldberg
    Member

    Thanks for trying that.

    I have a local branch that I assume should fix the problem. I've verified that it fixes info/lookup, but I cannot test install for PGA TOUR Pro Golf because I do not have Apple Arcade.

    If I make a PR, can you build the PR from source & test mas install --force 6545262709 again? Or would it be much easier for you to test it after it's been merged into main? The former is better so that I don't publish code that might not work 100% (it should work, but better to test before merging, if possible).

    The one limitation is that, while apps like PGA TOUR Pro Golf will presumably work for most mas commands, search & lucky will not find apps like PGA TOUR Pro Golf. I have an idea about how to get those 2 commands to support these apps, but it's ugly, so I'd prefer to just fix all the other commands first.

  15. rgoldberg commented on Feb 13, 2026

    @rgoldberg
    Member

    Can you open a new issue with the relevant info and a link to your first comment here?

    The issue should be entitled "Support MacDesktop-MacDesktop apps". (the double repetition of MacDesktop is correct)

  16. modified the milestones: 7.1.0, 8.0.0 on May 3, 2026
  17. TyceHerrman commented on Jul 10, 2026

    @TyceHerrman

    what about a smaller-scope feature? A separate command group someting like mas ios-on-mac.

    wouldn't do full install/update support, but could do:

    • list: use Spotlight metadata to report bundle ID, path, and local version when an iOS/iPadOS app lacks an ADAM ID.
    • check : public iTunes Lookup comparison; explicitly advisory.
    • open : open the App Store product page for user action.

    This would at least provide inventory, drift reporting, and Store handoff for ios/ipados apps on mac.

  18. rgoldberg commented on Jul 11, 2026

    @rgoldberg
    Member

    It's possible, but I've been working on many other larger issues first (see list at end), some of which would help enable implementing parts your request, or would help users more easily use parts of the new feature.

    If partial support were to be added, it would not involve new commands.

    When app IDs are (or --all is) supplied to a command for which non-macOS apps can be supported, the command should process each app ID regardless of the app's platform.

    When a command is run without app IDs (or --all), then the command should support a --platforms option:

    platforms_option ::= "--platforms" <platform> [ "," <platform> ]…`
    platform ::= "macos" | "ios" | "ipados" | "all"

    <platform> would probably be case insensitive.

    --platforms would default to macos for search, and either macos or all for list & outdated.

    Once the configuration system (#838) has been released, users could set their own default platform set, and thus avoid typing it in every command line.

    Commands

    Relevant commands accepting app IDs (or --all) to select apps should process apps for any platform when such arguments are supplied. Such commands include:

    • home
    • list
    • lookup/info
    • open
    • outdated (mutually exclusive with --accurate)
    • seller/vendor
    • uninstall

    Relevant commands that process all apps installed apps when no app ID arguments are supplied should support --platforms. Should the default be all or macos? all would show more info than would macos; users would, however, probably expect to be able to update any listed apps, but wouldn't be able to update any non-macOS ones. If we added a platform output field, then maybe all would be OK. Also, if we output a <platform> apps not supported error / warning for <platform> != macos in commands like install, update, etc., that might alleviate user confusion. Such commands include:

    • list
    • outdated (mutually exclusive with --accurate)

    Relevant commands that do not accept app ID arguments (or --all) should similarly support --platforms, but I'd be even more likely to support macos instead of all as the default. Even if a platform output field & improved non-macOS errors / warn gins were implemented, including non-macOS apps in search results could crowd out macOS app search results. Such commands include:

    • search

    I'll see if I can fit this in for 7.1.0. I might implement this first for only when app IDs (or --all) are supplied to relevant commands, not when commands are run without app IDs (or --all).

    Current & planned work

  19. rgoldberg commented on Jul 14, 2026

    @rgoldberg
    Member

    @TyceHerrman Please subscribe to #1275.

  20. changed the title [-]Support iPadOS (iPad) & iOS (iPhone) apps[/-] [+]Completely support iPadOS (iPad) & iOS (iPhone) apps[/+] on Aug 5, 2026
  21. modified the milestones: 8.0.0, TBD on Aug 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions