首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CFBundleURLName必须与CFBundleIdentifier匹配吗?

CFBundleURLName必须与CFBundleIdentifier匹配吗?
EN

Stack Overflow用户
提问于 2012-10-24 06:15:03
回答 2查看 11.9K关注 0票数 6

如果我希望iOS应用程序App1在设备上启动App2,那么CFBundleURLName是否需要与Info.plist中CFBundleURLTypes中的CFBundleIdentifier匹配?

例如,如果我在App1中有

代码语言:javascript
复制
<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:“urls。但是,如果我将app1的Info.plist更改为包含

代码语言:javascript
复制
<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:“urls。

你知道为什么吗?

我没有看到任何苹果文档要求CFBundleIdentifier必须与CFBundleURLName相匹配,但在实践中似乎是这样的。还是我错过了什么?

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2013-01-31 21:37:23

不,这两个属性不需要匹配,我不像您那样有问题,我将我的应用程序标识符CFBundleIdentifier设置为com.djp.myapp,并将url方案设置为CFBundleURLName设置为nothing.like.the.identifier,将CFBundleURLSchemes设置为。

我可以通过以下方式打开这个应用程序:abcd://

我认为可能会给你带来问题的一件事是,如果你运行你的应用程序时设置了url方案,并且在测试期间更改了捆绑包标识符(CFBundleIdentifier),从而实际上导致系统中存在两个应用程序。在这种情况下,你会有一个url方案冲突和苹果声明,没有任何程序来决定哪个应用程序将优先。

备注:如果超过一个第三方应用程序注册来处理相同的URL方案,目前还没有确定哪个应用程序将被给予该方案的过程。

此外,据我测试和经验,如果你有两个冲突的应用程序,它似乎是第一个安装的应用程序,当这个应用程序被删除时,第二个应用程序现在是唯一支持特定url方案的应用程序仍然没有使用。

这表明url方案在安装时已在系统中注册,需要重新安装此应用程序才能使其在这些方案上正常工作。

有关网址方案的更多信息,请查看Apple Advances App Tricks文档。

票数 7
EN

Stack Overflow用户

发布于 2013-04-09 22:43:32

我认为原因是你没有特殊的CFBundleTypeRole键,它表明你的应用程序是一个查看器,编辑器,外壳或其他。在自定义URL方案中需要此密钥。

注意:当您将osx设置为None时,它将不会启动您的应用程序。

你可以从这里获取信息Apple Developer Document

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13040175

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档