私はGo/Objective-CでMac OSアプリを書いています。私はXcodeを使用しておらず、手作業でアプリケーションバンドルを組み立てていると言えば十分です。ファイルシステムの階層は次のようになりますSafariディスプレイから起動されたアプリケーション:このページが「(null)」を開くことを許可しますか?
${APPNAME}.app
Contents
MacOS
${APPNAME} (binary)
Resources
Base.lproj
InfoPlist.strings (text)
Info.plist (text)
バンドルが正常に起動します。アプリケーションは期待どおりに動作します。私は自分のアプリケーションのURLスキームを定義するPlistファイルにCFBundleURLTypes辞書を持っています。
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLName</key>
<string>${APPNAME}</string>
<key>CFBundleURLSchemes</key>
<array>
<string>zzz</string>
</array>
</dict>
</array>
(注: "MyAppを"。${APPNAME}
のようなものです。これは、Javaスタイルではなく、DNS名の文字列を逆に)
私はZZZを使用してSafariでリンクをクリックしてください://schemeというメッセージが表示されます:
Do you want to allow this page to open "(null)"?
なぜですか? Info.plistファイルとInfoPlist.stringsファイルの両方にアプリケーション名を定義しました。
はInfoPlist.stringsファイルには、単にこれを含んでいます
CFBundleName = "My Wonderful Application"