class Spaceship::Portal::App
Attributes
@return (Fixnum) Number of associated app groups
@return (Array
of Spaceship::Portal::CloudContainer
) Associated cloud containers
@return (Array
of Spaceship::Portal::AppGroup
) Associated groups
@return (Fixnum) Number of associated cloud containers
@return (Bool) Development Push Enabled?
@return (Array
) List of enabled services
@return (Hash
) Feature details
@return (Fixnum) Number of associated identifiers
@return (Bool) Is this app a wildcard app (e.g. com.krausefx.*)
@return (String
) The name you provided for this app @example
"Spaceship"
@return (String
) the supported platform of this app @example
"ios"
Prefix provided by the Dev Portal
@example
"5A997XSHK2"
@return (Bool) Production Push Enabled?
Private Class Methods
@param mac [Bool] Fetches Mac apps if true @return (Array
) Returns all apps available for this account
# File spaceship/lib/spaceship/portal/app.rb, line 84 def all(mac: false) client.apps(mac: mac).map { |app| self.new(app) } end
Creates a new App
ID on the Apple Dev Portal
if bundle_id
ends with '*' then it is a wildcard id otherwise, it is an explicit id @param bundle_id
[String] the bundle id (app_identifier) of the app associated with this provisioning profile @param name [String] the name of the App
@param mac [Bool] is this a Mac app? @return (App
) The app you just created
# File spaceship/lib/spaceship/portal/app.rb, line 95 def create!(bundle_id: nil, name: nil, mac: false, enable_services: {}) if bundle_id.end_with?('*') type = :wildcard else type = :explicit end new_app = client.create_app!(type, name, bundle_id, mac: mac, enable_services: enable_services) self.new(new_app) end
Find a specific App
ID based on the bundle_id
@param mac [Bool] Searches Mac apps if true @return (App
) The app you're looking for. This is nil if the app can't be found.
# File spaceship/lib/spaceship/portal/app.rb, line 109 def find(bundle_id, mac: false) raise "`bundle_id` parameter must not be nil" if bundle_id.nil? found_app = all(mac: mac).find do |app| app if app.bundle_id.casecmp(bundle_id) == 0 end # Find catalyst enabled mac apps (look for mac first and then iOS) if !found_app && mac found_app = all(mac: false).find do |app| app if app.bundle_id.casecmp(bundle_id) == 0 end end found_app end
Private Instance Methods
Associate specific iCloud Containers with this app @return (App
) The updated detailed app. This is nil if the app couldn't be found.
# File spaceship/lib/spaceship/portal/app.rb, line 174 def associate_cloud_containers(containers) raise "`associate_cloud_containers` not available for Mac apps" if mac? app = client.associate_cloud_containers_with_app(self, containers) self.class.factory(app) end
Associate specific groups with this app @return (App
) The updated detailed app. This is nil if the app couldn't be found
# File spaceship/lib/spaceship/portal/app.rb, line 166 def associate_groups(groups) raise "`associate_groups` not available for Mac apps" if mac? app = client.associate_groups_with_app(self, groups) self.class.factory(app) end
Associate specific merchants with this app @return (App
) The updated detailed app. This is nil if the app couldn't be found
# File spaceship/lib/spaceship/portal/app.rb, line 182 def associate_merchants(merchants) app = client.associate_merchants_with_app(self, merchants, mac?) self.class.factory(app) end
@return (Bool) Is this a Mac app?
# File spaceship/lib/spaceship/portal/app.rb, line 196 def mac? platform == 'mac' end
Update a service for the app with given AppService
object @return (App
) The updated detailed app. This is nil if the app couldn't be found
# File spaceship/lib/spaceship/portal/app.rb, line 189 def update_service(service) raise "`update_service` not implemented for Mac apps" if mac? app = client.update_service_for_app(self, service) self.class.factory(app) end