如果我希望 iOS App App1 在设备上启动 App2,那么 CFBundleURLName 是否需要匹配 Info.plist 中 CFBundleURLTypes 中的 CFBundleIdentifier?
例如,如果我在 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>
在上述情况下,App2 可以在 App1 中启动“fooscheme:”url。但是,如果我将 App1 的 Info.plist 更改为包含
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>fooscheme</string>
</array>
<key>CFBundleURLName</key>
<string>com.foo.xyz</string>
</dict>
</array>
即,CFBundleURLName != CFBundleIdentifier,则 App2 不能再在 App1 中启动“fooscheme:”url。
任何想法为什么?
我没有看到任何 CFBundleIdentifier 必须匹配 CFBundleURLName 的 Apple 文档,但在实践中似乎就是这种情况。还是我错过了什么?
谢谢!