Ustawianie właściwości aplikacji na telefon iPhone w pliku deskryptora aplikacji

Plik deskryptora aplikacji to plik XML zawierający właściwości dla całej aplikacji, np. jej nazwę, wersję, prawa autorskie i inne ustawienia.

Program Flash Professional CS5 generuje plik deskryptora aplikacji w oparciu o ustawienia wprowadzone w oknie dialogowym ustawień telefonu iPhone. Plik deskryptora aplikacji można również poddać edycji w edytorze tekstu. Program Flash Professional nadaje nazwę plikowi deskryptora aplikacji, dodając „-app.xml” do nazwy projektu. Na przykład plik deskryptora aplikacji dla projektu HelloWorld otrzymuje nazwę HelloWorld-app.xml. Aby zdefiniować ustawienia nieobsługiwane za pośrednictwem okna dialogowego ustawień telefonu iPhone programu Flash Professional CS5, należy dokonać edycji pliku deskryptora aplikacji. Można, na przykład, zdefiniować element InfoAdditions w celu zdefiniowania ustawień info.Plist dla aplikacji.

Ważne: Nie edytuj pliku deskryptora aplikacji, gdy okno dialogowe programu Flash Professional CS5 jest otwarte. Zmiany w pliku deskryptora aplikacji należy zapisać przed otwarciem okna dialogowego ustawień iPhone.

Poniżej przedstawiono przykładowy plik deskryptora aplikacji:

<?xml version="1.0" encoding="UTF-8"?> 
<application xmlns="http://ns.adobe.com/air/application/2.0"> 
    <id>com.example.HelloWorld</id> 
    <filename>HelloWorld</filename> 
    <name>Hello World</name> 
    <version>v1</version> 
    <initialWindow> 
        <renderMode>gpu</renderMode> 
        <content>HelloWorld.swf</content> 
        <fullScreen>true</fullScreen> 
        <aspectRatio>portrait</aspectRatio> 
        <autoOrients>true</autoOrients> 
    </initialWindow> 
    <supportedProfiles>mobileDevice desktop</supportedProfiles> 
    <icon> 
        <image29x29>icons/icon29.png</image29x29> 
        <image57x57>icons/icon57.png</image57x57> 
        <image512x512>icons/icon512.png</image512x512> 
    </icon> 
    <iPhone> 
        <InfoAdditions> 
            <![CDATA[ 
                <key>UIStatusBarStyle</key> 
                <string>UIStatusBarStyleBlackOpaque</string> 
                <key>UIRequiresPersistentWiFi</key> 
                <string>NO</string> 
            ]]> 
        </InfoAdditions> 
    </iPhone> 
</application>

Oto szczegółowe informacje dotyczące ustawień w tym pliku deskryptora aplikacji:

  • W elemencie <application> na potrzeby budowy aplikacji na telefon iPhone wymagana jest przestrzeń nazw AIR 2.0

    <application xmlns="http://ns.adobe.com/air/application/2.0">

  • Element <id> :

    <id>com.example.as3.HelloWorld</id> Identyfikator aplikacji w sposób unikalny identyfikuje aplikację. Zalecaną formą jest rozdzielony kropkami ciąg znaków w stylu odwróconego adresu DNS, taki jak "com.firma.nazwa_aplikacji" . Kompilator korzysta z tej wartości jako identyfikatora pakunku na potrzeby aplikacji iPhone.

    Jeśli plik informacyjny jest powiązany z określonym identyfikatorem aplikacji, użyj tego identyfikatora aplikacji w tym elemencie. Zignoruj znaki przypisywane przez Apple na początku identyfikatora aplikacji Apple (znane jako identyfikator wartości początkowej pakunku). Na przykład, jeśli identyfikator aplikacji dla profilu informacyjnego to 96LPVWEASL.com.example.bob.myApp, użyj wartości com.example.bob.myApp jako identyfikatora aplikacji w pliku deskryptora aplikacji.

    Jeśli profil informacyjny dopuszcza wiele (wieloznacznych) identyfikatorów aplikacji, jego identyfikator aplikacji kończy się symbolem gwiazdki (np. 5RM86Z4DJM.*). Należy podać identyfikator aplikacji zgodny ze wzorem symbolu wieloznacznego identyfikatora aplikacji wg firmy Apple:

    • Jeśli identyfikator aplikacji wg firmy Apple to com.myDomain.*, identyfikator aplikacji w pliku deskryptora aplikacji musi rozpoczynać się od ciągu com.myDomain. Możliwe jest określenie identyfikatora aplikacji takiego jak com.myDomain.myApp lub com.myDomain.app22.

    • Jeśli identyfikator aplikacji Apple to *, identyfikator aplikacji w pliku deskryptora aplikacji może być dowolnym ciągiem poprawnych znaków.

    Identyfikator aplikacji wg Apple (lub wzór wieloznacznego identyfikatora aplikacji) powiązany z profilem informacyjnym można znaleźć w witrynie iPhone Dev Center ( http://developer.apple.com/iphone ). Przejdź do sekcji iPhone Developer Program Portal serwisu, a następnie do sekcji Provisioning.

    Ważne: Należy zignorować znaki poprzedzające identyfikator aplikacji podawany przez Apple. Zgodnie z terminologią Apple ten ciąg znaków to ID wartości początkowej pakunku. Na przykład, jeśli zostanie podany identyfikator aplikacji 5RM86Z4DJM.*, należy zignorować łańcuch 5RM86Z4DJM — jest to wieloznaczny identyfikator aplikacji. Jeśli zostanie podany identyfikator aplikacji 96LPVWEASL.com.example.bob.myApp, należy zignorować ciąg znaków 96LPVWEASL — zamiast tego jako identyfikatora aplikacji należy użyć wartości com.example.bob.myApp.

  • Element <filename> :

    <filename>HelloWorld</filename> Nazwa używana na potrzeby pliku instalatora iPhone. W nazwie pliku nie należy używać znaku plus (+).

  • Element <name> :

    <name>Hello World</name> Nazwa aplikacji wyświetlana w aplikacjach iTunes oraz iPhone. W nazwie nie należy używać znaku plus (+).

  • Element <version> :

    <version>1.0</version> Ułatwia użytkownikom określenie, którą wersję aplikacji instalują. Ta wersja jest używana jako obiekt CFBundleVersion aplikacji na telefon iPhone. Musi mieć ona format zbliżony do: nnnnn[.nn[.nn]] (gdzie n jest cyfrą z zakresu 0–9, a nawiasy oznaczają elementy opcjonalne, np. 1, 1.0 czy 1.0.1. Wersje telefonu iPhone muszą zawierać tylko cyfry i kropki dziesiętne. Wersje telefonu iPhone mogą zawierać maksymalnie dwie kropki dziesiętne.

  • Element <initialWindow> zawiera następujące elementy podrzędne umożliwiające określenie właściwości początkowego wyglądu aplikacji:

    <content>HelloWorld.swf</content> Identyfikuje główny plik SWF do kompilacji w aplikację na telefon iPhone.

    <visible>true</visible> Jest to ustawienie wymagane.

    <fullScreen>true</fullScreen> Określa, że aplikacja używa pełnego ekranu telefonu iPhone.

    <aspectRatio>portrait</aspectRatio> Określa, że jako początkowe proporcje aplikacji wybrano tryb pionowy (nie zaś poziomy). Należy zwrócić uwagę na fakt, że plik Default.png używany do definiowania początkowego okna aplikacji powinien mieć 320 pikseli szerokości oraz 480 pikseli wysokości, niezależnie od tego ustawienia. (Patrz Ikona telefonu iPhone i ikony ekranu początkowego ).

    <autoOrients>true</autoOrients> (opcja) Określa, czy orientacja bieżącej treści aplikacji jest ponownie automatycznie zmieniana wraz ze zmianą orientacji fizycznej urządzenia. Wartością domyślną jest true . Możliwe jest anulowanie automatycznej orientacji przez wywołanie metody preventDefault() zdarzenia orientationChanging . wywoływane przez obiekt Stage. Więcej informacji można znaleźć w sekcji Ustawianie i wykrywanie orientacji ekranu .

    W przypadku korzystania z funkcji automatycznej orientacji w celu uzyskania najlepszych wyników należy ustawić właściwość align stołu montażowego na następującą wartość:

    stage.align = StageAlign.TOP_LEFT; 
    stage.scaleMode = StageScaleMode.NO_SCALE;

    <renderMode>gpu</renderMode> (opcja) Tryb renderowania używany przez aplikację. Dostępne są trzy możliwe ustawienia:

    • cpu — aplikacja korzysta z procesora CPU do renderowania wszystkich obiektów aplikacji. Nie stosuje się akceleratora sprzętowego.

    • gpu — aplikacja korzysta z procesora GPU telefonu iPhone do kompozycji bitmap.

    • auto — ta funkcja nie została zaimplementowana.

    Więcej informacji można znaleźć w sekcji Przyspieszanie sprzętowe .

  • Element <profiles> :

    <profiles>mobileDevice</profiles> Ogranicza zakres kompilowanej aplikacji do profilu urządzenia mobilnego. Profil ten obecnie obsługuje jedynie aplikacje na telefon iPhone. Dostępne są trzy obsługiwane profile:

    • desktop — aplikacja AIR dla środowiska lokalnego na komputerze stacjonarnym.

    • extendedDesktop — aplikacja AIR dla środowiska lokalnego na komputerze stacjonarnym z obsługą interfejsu API procesów rodzimych.

    • mobileDevice — aplikacja AIR na urządzenie mobilne. Obecnie telefon iPhone jest jedynym obsługiwanym urządzeniem mobilnym.

    Ograniczenie zakresu aplikacji do określonego profilu zapobiega kompilacji do innych profili. W przypadku nieokreślenia profilu możliwe jest skompilowanie aplikacji dla dowolnego z tych profili. Możliwe jest określenie wielu profili w formie listy. Są one rozdzielone spacjami w elemencie <profiles> .

    Należy koniecznie uwzględnić mobileDevice jako obsługiwany profil (lub pozostawić element <profiles> pusty).

  • Element <icon> zawiera następujące elementy podrzędne umożliwiające określenie ikon używanych w aplikacji:

    <image29x29>icons/icon29.png</image29x29> Jest to obraz używany w wynikach wyszukiwania Spotlight.

    <image48x48>icons/icon48.png</image48x48> Jest to obraz używany w wynikach wyszukiwania Spotlight na iPadzie.

    <image57x57>icons/icon57.png</image57x57> Jest to obraz używany na ekranie początkowym urządzeń iPhone oraz iPod Touch.

    <image72x72>icons/icon72.png</image72x72> Jest to obraz używany na ekranie początkowym iPada.

    <image512x512>icons/icon512.png</image512x512> Jest to obraz używany w aplikacji iTunes.

    Narzędzie Packager for iPhone korzysta z ikon 29, 57 oraz 512, do których istnieją odwołania w pliku deskryptora aplikacji. To narzędzie kopiuje je do plików o nazwach: Icon-Small.png, Icon.png i iTunesArtwork. Aby uniknąć sporządzania takiej kopii, można spakować te pliki bezpośrednio. W tym celu należy umieścić je w katalogu zawierającym plik deskryptora aplikacji i wymieniając ich prawidłowe nazwy i ścieżki.

    Obraz w rozmiarze 512 przeznaczony jest wyłącznie na potrzeby wewnętrzne związane z testowaniem. Przesyłając ostateczną wersję aplikacji do sklepu Apple App Store, obraz w rozmiarze 512 dostarcza się jako osobny plik. Nie jest on uwzględniany w pliku IPA. Tę opcję należy wybrać, aby móc upewnić się, że obraz w rozmiarze 512 wygląda poprawnie w programie iTunes, jeszcze przed jego przesłaniem.

  • Element <iPhone> zawiera następujące elementy podrzędne umożliwiające określenie ustawień specyficznych dla telefonu iPhone:

    <InfoAdditions></InfoAdditions> zawiera elementy podrzędne określające pary klucz-wartość do użycia jako ustawienia Info.plist na potrzeby aplikacji:
    <![CDATA[ 
        <key>UIStatusBarStyle</key> 
        <string>UIStatusBarStyleBlackOpaque</string> 
        <key>UIRequiresPersistentWiFi</key> 
        <string>NO</string> 
    ]]>

    W tym przykładzie wartości powodują ustawienie stylu paska stanu aplikacji oraz określają, że aplikacja nie wymaga stałego dostępu do sieci Wi-Fi.

    Ustawienia InfoAdditions są umieszczone w znaczniku CDATA .

    Aby zapewniona była obsługa iPada, należy uwzględnić klucze i wartości w tablicy UIDeviceFamily . UIDeviceFamily jest tablicą ciągów znaków. Każdy ciąg definiuje obsługiwane urządzenia. Ustawienie <string>1</string> oznacza obsługę urządzeń iPhone i iPod Touch. Ustawienie <string>2</string> oznacza obsługę iPada. Ustawienie <string>3</string> oznacza obsługę platformy tvOS. W wypadku określenia tylko jednego z tych ustawień, obsługiwana będzie wyłącznie wskazana w ten sposób rodzina urządzeń. Na przykład poniższe ustawienie oznacza, że obsługiwany będzie tylko iPad:

    <key>UIDeviceFamily</key> 
        <array> 
            <string>2</string> 
        </array>>

    Następujące zestawy obsługują obie rodziny urządzeń (iPhone/iPod Touch oraz iPad):

    <key>UIDeviceFamily</key> 
    <array> 
        <string>1</string> 
        <string>2</string> 
    </array>

    Więcej informacji na temat innych ustawień Info.plist zawiera dokumentacja dla programistów Apple.