Repository navigation
Completely support iPadOS (iPad) & iOS (iPhone) apps #321
Description
Activity
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?
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 1234with that ID.Reacted by Chris AramanYou're right, you can get the ID from the App Store website URL.
I specifically tried Desert Golfing (ID: 902062673)mas info 902062673works, 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=4mas install 902062673brings up the following dialog:
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 buttonJust to be sure, I double checked, and it installs from the App Store fine.
Reacted by Phil Sherry, Karolína Lišková, Changsheng Wu, Stefan Natter, Carolyn, Ron Green and Louis OrleansWould be so excited if this would be fixed!!!
Reacted by Malo Bourgon, Adin Klotz, Stefan Natter, Shreyas Gupta, Dylan Lamont, Samit Shaikh, George Jose, Jad Tala, Kuroné Kito (黒音キト), Desperado and 3 moreMe too!
Is this being worked on or nay?
Reacted by Desperado and Colin ZhangPinging here to show support as well.
Reacted by Desperado, Colin Zhang, efossvold, Marek Mackiewicz, George Nikishin, Ruiyang Sun and Shay- changed the title
[-]🐛 [BUG] iOS apps installed on M1 macs don't show up[/-][+]Support iPadOS & iOS apps[/+]on Sep 14, 2024 +1 to hoping this gets support
28 remaining items
I will give this a try first thing tomorrow.
Reacted by Ross GoldbergI 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.
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 testinstallfor 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 6545262709again? 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&luckywill 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.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-MacDesktopapps". (the double repetition ofMacDesktopis correct)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.
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
--allis) 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--platformsoption:platforms_option ::= "--platforms" <platform> [ "," <platform> ]…` platform ::= "macos" | "ios" | "ipados" | "all"
<platform>would probably be case insensitive.--platformswould default tomacosforsearch, and eithermacosorallforlist&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:homelistlookup/infoopenoutdated(mutually exclusive with--accurate)seller/vendoruninstall
Relevant commands that process all apps installed apps when no app ID arguments are supplied should support
--platforms. Should the default beallormacos?allwould show more info than wouldmacos; 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 maybeallwould be OK. Also, if we output a<platform> apps not supportederror / warning for<platform>!=macosin commands likeinstall,update, etc., that might alleviate user confusion. Such commands include:listoutdated(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 supportmacosinstead ofallas 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
- Ready for release in 7.1.0 (local, not yet in GitHub):
- massive concurrency overhaul
- massive subprocess & privileges overhaul, including Use Swift Subprocess instead of
posix_spawn#1193 - code base cleanup
- update to Swift 6.3 & current dependencies
- Pending responses from third parties before implementation for 7.1.0:
- Ready for late 2026:
- Implementing for later mas versions (first 2 of which require extensive updates to third-party libraries):
- Haven't started, but plan to work on many issues dependent on (or vastly improved by) Configuration / Config / Settings / Preferences system #838, like:
Reacted by Tyce Herrman@TyceHerrman Please subscribe to #1275.
- changed the title
[-]Support iPadOS (iPad) & iOS (iPhone) apps[/-][+]Completely support iPadOS (iPad) & iOS (iPhone) apps[/+]on Aug 5, 2026
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)CKSoftwareMap, except it doesn't contain app names; it contains some data that might be similar to app names, but that can be off.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/receiptSee:
Original Issue
Your Environment
mas Install Method
brew install mas(homebrew-core)Describe the Bug
mas list,mas search,mas outdateddo not show iOS apps that can be installed via the App Store on M1 macs.To Reproduce
mas listExpected Behavior
The installed iOS app should be among the apps listed.
Actual Behavior
The iOS app is not among the apps listed.