2017-01-12 33 views
0

我正在Go/Objective-C中編寫Mac OS應用程序。只需說,我沒有使用Xcode,而是手動組裝應用程序包。這是它的文件系統層次結構看起來像從Safari顯示器啓動的應用程序:是否允許此頁面打開「(null)」?

${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}是一樣的東西,是不是一個Java風格,反向DNS名稱字符串 「MyApp的。」)

當我點擊Safari中使用的ZZZ一個鏈接:/ /方案中,我收到一條消息:

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

這是爲什麼?我已經在Info.plist文件和InfoPlist.strings文件中定義了我的應用程序名稱。

的InfoPlist.strings文件只包含此:

CFBundleName = "My Wonderful Application" 

回答

0

有明顯被某種緩存機制發生。當部署到另一臺Mac系統時,我們設法採購了一臺從未安裝過該軟件的設備,但這個問題沒有發生。

注意:在每次測試開始時,表現錯誤的以前的系統已經從其中移除了軟件完全。 Finder,Safari或其他Apple軟件必須祕密地將應用程序名稱緩存爲「(null)」。

回答:將其安裝在新的Mac機器上,或者完全恢復(不備份)您正在測試的機器。

相關問題