Doit CFBundleURLName match CFBundleIdentifier?

Si je veux iOS Application App1 pour lancer App2 sur un périphérique, puis le CFBundleURLName besoin pour correspondre à la CFBundleIdentifier dans le CFBundleURLTypes dans l'Info.plist?

Par exemple, si j'ai dans App1

<key>CFBundleIdentifier</key>
<string>com.foo.App1</string>
...
<key>CFBundleURLTypes</key>
<array>
<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>fooscheme</string>
        </array>
        <key>CFBundleURLName</key>
        <string>com.foo.App1</string>
    </dict>
</array>

Dans le cas ci-dessus, App2 pouvez lancer "fooscheme:" url dans App1. Cependant, si je change App1 de l'Info.plist pour inclure

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>fooscheme</string>
        </array>
        <key>CFBundleURLName</key>
        <string>com.foo.xyz</string>
    </dict>
</array>

c'est à dire, un CFBundleURLName != CFBundleIdentifier, puis App2 ne peut plus se lancer "fooscheme:" url dans App1.

Des idées pourquoi?

Je ne vois pas toute la documentation d'Apple qui CFBundleIdentifier doit correspondre à CFBundleURLName, mais cela semble être le cas dans la pratique. Ou ai-je raté quelque chose?

Merci!

OriginalL'auteur Joel | 2012-10-23