在我們的環境中,我們在多個項目和平臺之間共享資源。爲iPhone構建時,只需要這些資源的一部分。由於該子集仍然相當可觀,因此我們有一個清單文件列出進入的內容,這限制了副本。我們有自己的Python腳本來完成複製,只刷新已更改的文件。在Xcode中強制代碼簽名刷新
我在Xcode中創建了一個運行腳本階段來調用該腳本,但我遇到了一些與代碼簽名階段有關的問題。
由於我們使用單獨的清單文件,因此我的運行腳本階段無法在Xcode GUI中指定任何輸入/輸出文件:它取決於當時目錄中包含的內容。這樣做的副作用是Xcode不會嚴格知道將複製哪些文件(事情發生在「封面下」,可以這麼說)。
我的問題是,如果我只修改構建之間的資源文件,重建我的應用程序將正確調用我的腳本,它複製相應的文件,只有Xcode不會重新運行代碼簽名步驟, - 將我的應用程序複製到我的設備。
我發現奇怪的是,考慮到我的資源文件確實在<app_bundle>/_CodeSignature/CodeResources
文件中列出,但它看起來像Xcode確定獨立於此的重建要求(可能只包括項目文件中列出的文件),這是可以理解的。
我試着通過觸摸我的應用程序包的目錄或應用程序的二進制本身來玩技巧,但它不起作用。觸摸應用程序的捆綁目錄似乎沒有做任何事情,而觸摸二進制文件將工作,但不是爲當前建設,只有後續的(因爲沒有輸入文件需要重新編譯,Xcode推斷沒有生成新的二進制文件,但下一個時間,它確實會檢測到二進制文件已被觸摸,並重新開始Code Signing和on)。
不過,這是一個相當完美的解決方法,這是因爲:
- 不必建立兩次是很容易出錯
- 我的dSYM文件將無謂地得到再生
有誰知道有什麼方法強制Xcode中的代碼簽名步驟(從運行腳本或其他地方)?
謝謝。有用! – jhoule
我做了一些相當於: – jhoule
'export CODESIGN_ALLOCATE =「$ {PLATFORM_DEVLOPER_BIN_DIR}/codesign_allocate」' – jhoule