2016-09-23 80 views
9

Xcode 8要求您選擇一個「開發團隊」,然後才能爲iOS和MacOS簽署應用程序。如何做出選擇並不是很困難。 (在Add developer team in Xcode 8?中可以找到答案,以防有人無法自己弄清楚。)如何防止Xcode 8在.pbxproj中保存「開發團隊」?

問題是Xcode將選擇保存在.pbxproj文件中。因爲在我的情況下,我期望很多其他人,這是在SCM下,而且這個項目被許多不相關的人使用,這是一個巨大的問題。例如,'git status'表示一旦選擇了團隊,工作區域就不乾淨。

有沒有辦法要麼

  • 獲得的Xcode 8保存在用戶,而不是項目數據的選擇,或
  • 指定所有的Xcode項目默認「的開發團隊」?
+3

據https://pewpewthespells.com/blog/migrating_code_signing.html,所有開發人員的任何設備上運行在一個項目上工作應該被添加到s中ame賬號/開發團隊「避免弄髒項目文件」。顯然,對於開源項目而言,在邏輯上不合理,特別是在人們使用個人團隊時。當然希望有更好的解決方案。 – msc

+0

爲什麼不堅持舊的代碼簽名系統?它仍然正常工作。 –

+1

那麼,你不能。如果您沒有明確選擇開發團隊,Xcode 8將不會編譯iOS/tvOS設備的目標。這吸引了開源項目,該項目通過挑選有效的簽名標識來與Xcode 7一起編譯。 – 0xced

回答

5

可以濫用Xcode的自定義路徑機制來存儲project.pbxproj文件以外的開發團隊標識通過設置DEVELOPMENT_TEAM自定義路徑(與你的團隊標識替換ABCDEFGHIJ):

Xcode Custom Paths

(Xcode菜單→首選項→位置→自定義路徑)

自定義路徑存儲在Xcode的首選項中(IDEApplicationwideBuildSettingsIDESourceTreeDisplayNames)。

但有一個問題!不幸的是,只要你改變項目中的任何東西(更新構建設置,添加新的構建階段,重命名目標等),開發團隊將自動添加到project.pbxproj文件中(在項目的TargetAttributes中目的)。 這需要時刻小心不要犯下這些變化。

如果設置的這種做法你DEVELOPMENT_TEAM爲自定義路徑獲得牽引力,開源項目業主將可以不指定任何開發團隊也不供應配置文件,設置代碼簽名身份爲任何iOS版SDKiOS開發"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";)和開源演示應用程序將建立並就像它沒有在Xcode 7

+0

這工作。感謝您解決這個討厭的問題。幸運的是,您提到的catch對我來說不是問題,因爲我的項目使用GYP生成project.pbxproj文件。必須對GYP文件進行任何更改。我很高興,我不需要用我從SCM中刪除project.pbxproj文件的替代解決方案,並迫使我的用戶在提供他們的團隊標識符後自己生成它們。 – msc

+0

我錯過了一些東西。我遵循上述步驟,但不知道如何使用此自定義路徑。創建此自定義路徑後,我將團隊設置爲「無」,但該項目不會構建到我的手機中。 – djibouti33

+0

我想我明白了。目標>構建設置>開發團隊>其他>添加$(DEVELOPMENT_TEAM)。如果你回到目標>一般,你會看到你的團隊填充。如果您在文本編輯器中打開project.pbxproj並搜索DEVELOPMENT_TEAM,則會看到它已設置爲「$(DEVELOPMENT_TEAM)」。這就是說,我仍然能夠通過搜索「DevelopmentTeam」找到我的團隊ID,所以我不確定這個解決方案是否適合我。 – djibouti33

0

我將我的項目從Xcode 7.3.1升級到Xcode 8,並且從未設置開發團隊或未棄用的Provisioning Profile,並且事情仍然正常。

enter image description here

+1

當您的所有團隊成員都可以訪問* Twitch Development 20161017 * provisioning配置文件時,這可能會很好,這可能包括團隊的所有設備。但是這對於顯然無法提供配置文件的開源項目並不適用。 – 0xced

+0

是的,但您可以將棄用的供應配置文件設置爲xcconfig變量嗎?然後它不會被覆蓋。 –

+0

這不是問題所在。問題在於,對於開源項目,根本無法設置配置配置文件。在文本編輯器中查看* Twitch Development 20161017 * provisioning配置文件的'ProvisionedDevices':它僅適用於少數設備。在Xcode 7中,您可以將代碼簽名標識設置爲_iPhone Developer_,讓供應配置文件爲空,Xcode將自動選擇您的_iOS團隊配置文件:* _。這對於Xcode 8來說是不可能的。 – 0xced