2014-10-02 23 views
0

Pre-Yosemite可以排除specifying resource rules之前的代碼簽名中的某些文件,但是從優勝美地版本(OS X 10.10)--resource-rules are oboleted開始。 是否仍有辦法排除某些文件,以便籤名驗證忽略它們? 我不想看門人被投擲警告:codesign(MAC 10.10)和定製支持

$spctl -a -t execute my.app 

的這裏的要求是代碼簽名的應用程序後,可以通過語言定製的管理員和本定製獲取資源語言文件夾更新(.LPROJ)。

+0

TN2206似乎暗示它不能完成。考慮將額外的本地化數據放在應用程序之外,或許放在'/ Library/Application Support/nameofmyapp'或'〜/ Library/Application Support/nameofmyapp'中。 – JWWalker 2014-10-02 23:24:39

+0

這就是我現在正在執行的內容,但它意味着代碼本身的變化。順便說一下,這個文檔明確提到它 - > **在小牛中做的代碼簽名,後來總是將所有文件封裝在一個包中; ** – PnotNP 2014-10-03 00:40:53

+0

在同一個文檔中的其他地方,它說:「它默認記錄基本上所有文件,沒有默認值」洞「」我很好奇「基本上所有」與「全部」。 – JWWalker 2014-10-03 00:58:16

回答

0

我在構建時創建了InfoPlist.strings文件的符號鏈接,然後在安裝過程中根據需要在系統上創建了實際文件。

建造時間

my.app/Content/Resources/ 
my.app/Content/Resources/es.lproj/InfoPlist.strings <-- soft link to /Library/Application\ Support/com.myapp/es.lproj/InfoPlist.strings 
my.app/Content/Resources/ru.lproj/InfoPlist.strings 

安裝時間:

app.zip (contains myapp.pkg + config file) <--- postscript file creates /Library/Application\ Support/com.myapp/*.lproj/InfoPlist.strings based on config file 

雖然符號鏈接被記錄在v2的簽名,但上面的過程不能打破協同設計簽名驗證。

這會在主菜單中更改應用程序的名稱,但發現者仍然從Info.plist文件讀取。