M1 Macで、Mac App StoreからインストールしたiOSアプリから、ジャンル情報を取得するAppleScriptです。
iOSアプリケーションでは、Info.plist内にジャンル情報が記載されておらず、バンドル内の別ファイルに記載されています。これを読み取ることで、ジャンル情報を取得できます。
なかなか素敵な機能なのですが、Xcode上のCocoa-AppleScriptアプリケーション内で実行すると、Sandboxの制限によりデータアクセスができません。
▲macOSのFinder上でiOSアプリのバンドル内部を表示させたところ。メタデータが添付されているのがわかる
ただし、Macのアプリケーションのジャンル情報と項目が異なっていたり、相互に存在しないジャンルなどもあるため、そのままMac上でも同様のジャンルであると判定することは避けたほうがよいでしょう。
AppleScript名:指定のiOSアプリからジャンル情報を取得.scptd |
— – Created by: Takaaki Naganoya – Created on: 2021/06/20 — – Copyright © 2021 Piyomaru Software, All Rights Reserved — use AppleScript version "2.7" use scripting additions use framework "Foundation" set aFile to POSIX path of (choose file) set gID to getGenreNumFromiOSApp(aFile) of me on getGenreNumFromiOSApp(aPOSIX) set metaDataPOSIX to aPOSIX & "Wrapper/iTunesMetadata.plist" set aRec to retDictFromPlist(metaDataPOSIX) of me if aRec = missing value then return missing value set aGenreID to genre of aRec return aGenreID end getGenreNumFromiOSApp on retDictFromPlist(aPlistPath) set thePath to current application’s NSString’s stringWithString:aPlistPath set thePath to thePath’s stringByExpandingTildeInPath() set theDict to current application’s NSDictionary’s dictionaryWithContentsOfFile:thePath if theDict = missing value then return missing value return theDict as record end retDictFromPlist |