mirror of
https://github.com/zhigang1992/RubyMotion.git
synced 2026-04-05 09:39:14 +08:00
add seed_id and entitlements doc
This commit is contained in:
@@ -450,6 +450,7 @@ The +rake config+ task will dump the project configuration. Each configuration v
|
||||
|+sdk_version+ | Version number of SDK to target, as a +String+. The default value is the version number of the most recent SDK in +platforms_dir+. Example: +'5.0'+|
|
||||
|+codesign_certificate+ | The name of the certificate to use for codesigning, as a +String+. The default value is the first iPhone Developer certificate found in keychain. Example: +'iPhone Developer: Darth Vader (A3LKZY369Q)'+.|
|
||||
|+provisioning_profile+ | Path to the provisioning profile to use for deployment, as a +String+. The default value is the first +.mobileprovision+ file found in +~/Library/MobileDevice/Provisioning+. |
|
||||
|+seed_id+ | The application provisioning identifier, as a +String+. It is a unique (within the App Store) 10 characters identifier generated by the provisioning portal. The default value is the first application identifier found in the +provisioning_profile+. |
|
||||
|
||||
Custom values for the configuration settings can be added by tweaking the +Motion::App.setup+ block in the +Rakefile+ file.
|
||||
|
||||
@@ -529,6 +530,27 @@ Motion::Project::App.setup do |app|
|
||||
end
|
||||
</pre>
|
||||
|
||||
h4. Entitlements
|
||||
|
||||
Entitlements confer specific capabilities or security permissions to an application. You may be required by Apple to request an entitlement when trying to access a specific feature of the system.
|
||||
|
||||
An application running on an iOS device that does not have the proper entitlement for a functionality will fail at runtime when trying to use such functionality. It will also not be accepted into the App Store.
|
||||
|
||||
Entitlements are used during the code-signing part of the build process.
|
||||
|
||||
The +entitlements+ method of the +Rakefile+ configuration object returns an empty +Hash+ object by default, that the developer can modify to set appropriate keys and values.
|
||||
|
||||
For instance, our video player might require access to the keychain to store the user credentials. According to the documentation, the +keychain-access-groups+ entitlement must be requested, passing a combination of the application provisioning identifier and the application identifier, respectively exposed as +seed_id+ and +identifier+ in RubyMotion.
|
||||
|
||||
<pre>
|
||||
Motion::Project::App.setup do |app|
|
||||
# ...
|
||||
app.entitlements['keychain-access-groups'] = [
|
||||
app.seed_id + '.' + app.identifier
|
||||
]
|
||||
end
|
||||
</pre>
|
||||
|
||||
h4. Advanced Info.plist Settings
|
||||
|
||||
An iOS app has its configuration described into the +Info.plist+ file, which is located inside the application bundle. This file contains a set of keys and values. It is fully documented in the "Info.plist reference":http://developer.apple.com/library/ios/#documentation/General/Reference/InfoPlistKeyReference/Introduction/Introduction.html guide.
|
||||
@@ -560,7 +582,7 @@ The following steps are performed:
|
||||
# It compiles each Ruby source code file into optimized machine code, translating the Ruby syntax tree into an intermediate representation language (using "LLVM":http://llvm.org/), then assembly. The compiler will generate code for either the Intel 32-bit (+i386+) or ARM (+armv6+, +armv7+) instruction sets and ABIs depending on the target.
|
||||
# It links the machine code with the RubyMotion runtime statically to form an executable. The linker also includes metadata for the C APIs that the project uses, as well as 3rd-party libraries vendored from the configuration.
|
||||
# It creates an +.app+ bundle and copies the executable there. The +Info.plist+ file is generated based on the project configuration. Each resource file in the +resources+ directory is copied in the bundle.
|
||||
# It codesigns the bundle based on the certificate and provisioning profile specified in the project configuration.
|
||||
# It codesigns the bundle based on the certificate, the provisioning profile and the entitlements specified in the project configuration.
|
||||
|
||||
Normally the user does not need to explicitly build the project, as the +build+ task is a dependency of the other tasks.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user