XSLT存档  

不及格的程序员-八神

 查看分类:  ASP.NET XML/XSLT JavaScripT   我的MSN空间Blog

陏着类似"来电归属地"这样的App越来越多,由于是采用企业开发账号,那么当账号过期之后它们的程序将不能再启动了,它们只有一年的使用时间. 对于这样的壳应用在app store上,对用户的利益是无法保障的,应该被禁止。

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>items</key> <array> <dict> <key>assets</key> <array> <dict> <key>kind</key> <string>software-package</string> <key>url</key> <string>http://65.49.26.76/ipa/BlackList.ipa</string> </dict> <dict> <key>kind</key> <string>full-size-image</string> <key>needs-shine</key> <false/> <key>url</key> <string>http://65.49.26.76/tubiao@2x.png</string> </dict> <dict> <key>kind</key> <string>display-image</string> <key>needs-shine</key> <false/> <key>url</key> <string>http://65.49.26.76/tubiao.png</string> </dict> </array> <key>metadata</key> <dict> <key>bundle-identifier</key> <string>com.fingster.BlackList</string> <key>bundle-version</key> <string>3.0</string> <key>kind</key> <string>software</string> <key>title</key> <string>BlackList</string> </dict> </dict> </array> </dict> </plist>

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>items</key> <array> <dict> <key>assets</key> <array> <dict> <key>kind</key> <string>software-package</string> <key>url</key> <string>http://65.49.26.75/ipa/UnknownLoc.ipa</string> </dict> <dict> <key>kind</key> <string>full-size-image</string> <key>needs-shine</key> <false/> <key>url</key> <string>http://65.49.26.75/tubiao@2x.png</string> </dict> <dict> <key>kind</key> <string>display-image</string> <key>needs-shine</key> <false/> <key>url</key> <string>http://65.49.26.75/tubiao.png</string> </dict> </array> <key>metadata</key> <dict> <key>bundle-identifier</key> <string>com.fingster.UnknownLoc</string> <key>bundle-version</key> <string>3.5</string> <key>kind</key> <string>software</string> <key>title</key> <string>陌生人归属地</string> </dict> </dict> </array> </dict> </plist>


 

Distributing Enterprise Apps for iOS Devices

This document describes how to purchase apps from the App Store in bulk, and how to distribute enterprise apps that you develop for in-house use.

Introduction

This document describes how to purchase apps from the App Store in bulk, and how to distribute enterprise apps that you develop for in-house use.

In addition to the methods described here, some Mobile Device Management (MDM) servers let you instruct a device to install an enterprise app or App Store app. You an also use MDM to remove these “managed apps” and mark them so that they aren’t backed up by iTunes or iCloud. For information see the documentation that came with your MDM server.

Installing apps wirelessly

iOS supports over-the-air installation of enterprise apps, letting you distribute in-house software to your users without using iTunes.

Requirements

  • A secure web server that authenticated users can access

  • An iOS app in .ipa format, built for release/production with an enterprise provisioning profile

  • An XML manifest file, described later in this document

  • A network configuration that allows the devices to access an iTunes server at Apple

Installing the app is simple. Users download the manifest file from your website to their iOS device. The manifest file instructs the device to download and install the apps referenced in the manifest file.

You can distribute the URL for downloading the manifest file by SMS or email, or by embedding it in another enterprise app you create.

It’s up to you to design and host the website used to distribute apps. Make sure that users are authenticated, perhaps using basic auth or directory-based authentication, and that the website is accessible via your intranet or the Internet. You can place the app and manifest file in a hidden directory, or in any other location that’s readable using HTTP or HTTPS.

Preparing an enterprise app for wireless distribution

To prepare your enterprise app for wireless distribution, you build an archived version (an .ipa file), and a manifest file that enables wireless distribution and installation of the app.

You use Xcode to create an app archive. Sign the app using your distribution certificate and include your enterprise deployment provisioning profile in the archive. For information about the manifest file, see below. For more information about building and archiving apps, visit the iOS Dev Center or refer to the Xcode User Guide, available from the Help menu in Xcode.

About the wireless manifest file

The manifest file is an XML plist. It’s used by an iOS device to find, download, and install apps from your web server. The manifest file is created by Xcode, using information you provide when you share an archived app for enterprise distribution. See the previous section,Preparing apps for distribution.

The following fields are required:

Item

Description

URL

The fully qualified HTTP or HTTPS URL of the app (.ipa) file.

display-image

A 57 x 57-pixel PNG image that’s displayed during download and installation. Specify the image’s fully qualified URL.

full-size-image

A 512 x 512-pixel PNG image that represents the app in iTunes.

bundle-identifier

Your app’s bundle identifier, exactly as specified in your Xcode project.

bundle-version

Your app’s bundle version, as specified in your Xcode project.

title

The name of the app, which is displayed during download and installation.

For Newsstand apps only, the following fields are required:

Item

Description

newsstand-image

A full-sized PNG image for display on the Newsstand shelf.

UINewsstandBindingEdge

UINewsstandBindingType

These keys must match those in your Newsstand app’s info.plist.

UINewsstandApp

Indicates that the app is a Newsstand app.

Optional keys you can use are described in the sample manifest file. For example, you can use the MD5 keys if your app file is large and you want to ensure download integrity beyond the error checking normally done for TCP communications.

You can install more than one app with a single manifest file by specifying additional members of the items array.

A sample manifest file is included at the end of this document.

Constructing your website

Upload these items to an area of your website that your authenticated users can access:

  • The app (.ipa) file

  • The manifest (.plist) file

Your website design can be as simple as a single page that links to the manifest file. When a user taps a web link, the manifest file is downloaded, which triggers the downloading and installation of the apps it describes.

Here’s a sample link:

<a href="itms-services://?action=download-manifest&url=http://example.com/
manifest.plist">Install App</a>

Don’t add a web link to the archived app (.ipa). The .ipa is downloaded by the device when the manifest file is loaded. Although the protocol portion of the URL is itms-services, the iTunes Store isn’t involved in this process.

Setting server MIME types

You may need to configure your web server so the manifest file and app file are transmitted correctly.

For OS X Server, add the following MIME types to the Web service’s MIME Types settings:

application/octet-stream ipa

text/xml plist

For IIS, use IIS Manager to add the MIME type in the Properties page of the server:

.ipa application/octet-stream

.plist text/xml

© 2012 Apple Inc. All rights reserved.

Sample app manifest file

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">

<plist version="1.0">

<dict>

   <!-- array of downloads. -->

   <key>items</key>

   <array>

       <dict>

           <!-- an array of assets to download -->

           <key>assets</key>

           <array>

               <!-- software-package: the ipa to install. -->

               <dict>

                   <!-- required. the asset kind. -->

                   <key>kind</key>

                   <string>software-package</string>

                   <!-- optional. md5 every n bytes. will restart a chunk if md5 fails. -->

                   <key>md5-size</key>

                   <integer>10485760</integer>

                   <!-- optional. array of md5 hashes for each "md5-size" sized chunk. -->

                   <key>md5s</key>

                   <array>

                       <string>41fa64bb7a7cae5a46bfb45821ac8bba</string>

                       <string>51fa64bb7a7cae5a46bfb45821ac8bba</string>

                   </array>

                   <!-- required. the URL of the file to download. -->

                   <key>url</key>

                   <string>http://www.example.com/apps/foo.ipa</string>

               </dict>

               <!-- display-image: the icon to display during download .-->

               <dict>

                   <key>kind</key>

                   <string>display-image</string>

                   <!-- optional. indicates if icon needs shine effect applied. -->

                   <key>needs-shine</key>

                   <true/>

                   <key>url</key>

                   <string>http://www.example.com/image.57x57.png</string>

               </dict>

               <!-- full-size-image: the large 512x512 icon used by iTunes. -->

               <dict>

                   <key>kind</key>

                   <string>full-size-image</string>

                   <!-- optional. one md5 hash for the entire file. -->

                   <key>md5</key>

                   <string>61fa64bb7a7cae5a46bfb45821ac8bba</string>

                   <key>needs-shine</key>

                   <true/>

                   <key>url</key><string>http://www.example.com/image.512x512.jpg</string>

               </dict>

           </array><key>metadata</key>

           <dict>

               <!-- required -->

               <key>bundle-identifier</key>

               <string>com.example.fooapp</string>

               <!-- optional (software only) -->

               <key>bundle-version</key>

               <string>1.0</string>

               <!-- required. the download kind. -->

               <key>kind</key>

               <string>software</string>

               <!-- optional. displayed during download; typically company name -->

               <key>subtitle</key>

               <string>Apple</string>

               <!-- required. the title to display during the download. -->

               <key>title</key>

               <string>Example Corporate App</string>

           </dict>

       </dict>

   </array>

</dict>

</plist>

posted on 2012-06-05 09:52  不及格的程序员-八神  阅读(751)  评论(2编辑  收藏  举报