From 26d52f0daa8fb1cc44476b130f54ef0bd4eea95b Mon Sep 17 00:00:00 2001 From: Mark Rickert Date: Sun, 4 Aug 2013 12:26:01 -0700 Subject: [PATCH] Support app_store_category config var for OSX apps. Allows you to set app_store category configuration value instead of doing this: app.info_plist['LSApplicationCategoryType'] = 'public.app-category.developer-tools' This allows you to specify: app.app_store_category = 'developer-tools' - or - app.app_store_category = 'public.app-category.developer-tools' --- lib/motion/project/template/osx/config.rb | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/lib/motion/project/template/osx/config.rb b/lib/motion/project/template/osx/config.rb index 7f5f4023..fd2be401 100644 --- a/lib/motion/project/template/osx/config.rb +++ b/lib/motion/project/template/osx/config.rb @@ -29,12 +29,13 @@ module Motion; module Project; class OSXConfig < XcodeConfig register :osx - variable :icon, :copyright, :embedded_frameworks + variable :icon, :copyright, :app_store_category, :embedded_frameworks def initialize(project_dir, build_mode) super @copyright = "Copyright © #{Time.now.year} #{`whoami`.strip}. All rights reserved." @icon = '' + @app_store_category = '' @frameworks = ['AppKit', 'Foundation', 'CoreGraphics'] @embedded_frameworks = [] end @@ -110,10 +111,18 @@ module Motion; module Project; 'NSHumanReadableCopyright' => copyright, 'NSPrincipalClass' => 'NSApplication', 'CFBundleIconFile' => (icon or ''), - 'LSMinimumSystemVersion' => deployment_target + 'LSMinimumSystemVersion' => deployment_target, + 'LSApplicationCategoryType' => store_category }.merge(generic_info_plist).merge(dt_info_plist).merge(info_plist)) end - + + def store_category + # For valid values: + # http://developer.apple.com/library/ios/#documentation/general/Reference/InfoPlistKeyReference/Articles/LaunchServicesKeys.html + return @app_store_category if @app_store_category.include?("public.app-category") || @app_store_category == '' + "public.app-category.#{@app_store_category}" + end + def supported_sdk_versions(versions) osx_version = `sw_vers -productVersion`.strip versions.reverse.find { |vers|