2014-01-14 43 views
0

TLDR;問題:有沒有辦法準備一個XArchive,然後他們可以自己分配配置文件並使用適當的分發證書進行簽名?準備未簽名的Xcarchive

長問題: 我的客戶向我發送了一個供應配置文件,供我爲他們開發的應用程序使用。他們不想向我發送他們的分發證書(.p12文件)。

的說明,他們給了我如下:

  1. 裝入供應配置文件到您的系統
  2. 在你的項目中,選擇下的供應配置文件目標的 「生成設置」的「預置簡檔內「部分
  3. 不要選擇一個代碼簽名身份
  4. 運行,產品展示 - >存檔
  5. 選擇‘導出爲的XCode歸檔’給出T當他選擇到分發

的問題是,執行步驟4的時候,我得到以下錯誤:

CodeSign error: code signing is required for product type 'Application' in SDK 'iOS 7.0' 

他們想到的是,他們將協同設計就在自己身邊的應用程序(從而保護他們的證書)。有沒有辦法做到這一點?

+1

Erm..well yes..you無法對沒有分發證書的發佈版本進行編碼簽名。如果您無法訪問自己的iTunes dev帳戶來創建自己的帳戶,則必須提供一個帳戶。 – GuybrushThreepwood

回答

3

之所以能夠做到這一點使用以下方法:

  1. 通過developer.apple.com創建內訓發行配置文件
  2. 選擇任何的AppID將要與此配置文件相關聯(或通配符)
  3. 選擇一個分發要包含在配置文件中的證書
  4. 安裝證書和配置文件profil通過下載並雙擊它們(或者如果使用XCode 5,您可以通過刷新帳戶首選項窗格來完成)
  5. 最重要的:在您的項目中創建一個「Entitlements.plist」文件,是否將其分配給您的「支持文件」組以便採取更好的措施。爲這個文件添加一個關鍵字,並從關鍵字的下拉列表中選擇「get-task-allow」或「可以調試」(取決於你的plist編輯器是否顯示原始鍵值)。該值應爲「否」
  6. 代碼簽名在項目的構建設置部分執行以下操作:
    1. 代碼簽名應享權利設置鍵入從那裏您.xcodeproj文件所在的相對路徑Entitlements.plist存在。例如,如果您的.xcodeproj文件駐留在名爲「MyApp」的子文件夾的文件夾中,並且您的Entitlements.plist文件存在於「MyApp」文件夾中,則可以將該值設置爲:MyApp/Entitlements。plist中
    2. 下選擇守則的供應配置文件和證書籤名部分

瞧,通過產品展示 - >存檔建立你Xcarchive並把它交給你的客戶,他們將能夠重新簽署自己的個人資料和證書。

+1

太棒了!這工作。 –

+0

這樣我不認爲你正在創建一個未簽名的檔案。相反,您使用自己的內部分銷證書籤署。客戶端然後用他們自己的證書重新簽名您的簽名二進制文件。 – archeopetrix

0

在終端中使用xcodebuild命令爲我工作。

xcodebuild -project MyApp.xcodeproj -scheme MyApp -configuration Release clean archive -archivePath 「buildArchive/MyApp.xcarchive" CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO 

這在我的項目根目錄的「buildArchive」子目錄中創建了一個未簽名的歸檔文件「MyApp.xcarchive」。

+0

使用此命令之前,需要設置'代碼簽名身份'='不要代碼簽名'。 –

+0

@Isutu Jayathissa - 對,我錯過了提及。感謝您指出。不知道什麼促使某人downvote這:( – archeopetrix