从Safari显示器启动的应用程序:您是否要允许此页面打开“(null)”?

时间:2017-01-12 00:06:45

标签: objective-c macos go

我正在Go / Objective-C中编写Mac OS应用程序。我只想说,我没有使用Xcode并且已经手动组装了应用程序包。这是文件系统层次结构的样子

${APPNAME}.app
  Contents
    MacOS
      ${APPNAME} (binary)
  Resources
    Base.lproj
      InfoPlist.strings (text)
  Info.plist (text)

捆绑发射很好。应用按预期工作。我的Plist文件中有一个CFBundleURLTypes字典,它为我的应用程序定义了一个URL方案。

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLName</key>
        <string>${APPNAME}</string>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>zzz</string>
        </array>
    </dict>
</array>

(注意:${APPNAME}类似于“MyApp”。它不是Java风格的反向DNS名称字符串。)

当我点击Safari中使用zzz://方案的链接时,我收到一条消息:

Do you want to allow this page to open "(null)"?

为什么?我已在Info.plist文件和InfoPlist.strings文件中定义了我的应用程序名称。

InfoPlist.strings文件只包含以下内容:

CFBundleName = "My Wonderful Application"

1 个答案:

答案 0 :(得分:0)

显然有某种缓存机制正在发生。当部署到我们设法采购的另一台Mac系统时,从未安装过相关软件,这个问题没有发生。

注意:在每次测试开始时,以前错误行为的系统都将完全从中删除。 Finder,Safari或其他一些Apple软件必须秘密缓存应用名称为&#34;(null)&#34;。

答案:将其安装在新的Mac计算机上,或者完全恢复(没有备份)您正在测试的计算机。