我已經在Xcode中配置了權利,但他們沒有被放入已編譯的應用程序包中。我需要做一些額外的步驟嗎?如何確保應用OS X應用程序權利?
我正在寫一個OS X(用於在AppStore 不)「開發者ID」 -signed應用,並能夠實現共享與父應用程序,我需要把它們放在同一首的擴展應用程序組。
我在Xcode中配置了應用程序組,我在$Extension.entitlements
和$ParentApp.entitlements
plist中看到它們。
但是,在構建的產品$Extension.app/Contents/_CodeSignature/CodeEntitlements
類似於沒有配置組的默認權利文件,而在父應用程序中,此文件根本不存在。
我甚至已經試過有明確的權利文件再次登錄該應用:
codesign --force --entitlements $ParentApp.entitlements -s "Developer ID" \
Build/Products/Debug/$ParentApp.app
但同樣,它不會加入到$ParentApp.app/Contents/_CodeSignature/CodeEntitlements
。
在運行時,父應用程序和擴展不會出現相同的應用程序組中:他們寫自己的喜好([NSUserDefaults…initWithSuiteName:teamIdEtc]
)自己的子目錄~/Library/Containers
,而不是~/Library/Group Containers
共享目錄。
正在關鍵'上市這兩個應用com.apple.security.application-groups '? –
@ l'L'l他們不是。文檔說應用程序組的格式是TEAMID.someidentifier,所以這就是我用過的。 – Kornel
這就是我的意思;應用程序組容器是否已創建?由於應用程序組容器的描述只提到:「此容器適用於非面向用戶的內容,如共享緩存或數據庫」,因此每個應用程序可能會將「NSUserDefaults」寫入其自己的容器,這可能很正常。也許可以解釋這種行爲。 –