2009-12-07 128 views
15

我已經創建了我的應用程序的臨時版本,並希望另一個人來安裝它。我在設置配置文件中有他們的設備ID(實際上有兩個)。我的證書與特設應用商店配置相同。該證書在鑰匙串中有效。我已經在Xcode中爲此版本選擇了專用配置文件,該配置文件鏈接到分發證書。簽名者無​​效錯誤

我向用戶發送配置文件和.app文件。他們都下降到iTunes,然後同步得到這個錯誤在兩臺設備上:

The application "myapp" was not installed on the iPhone "user's iPhone" because the signer is not valid. 

我已經刪除所有配置文件從我的iPhone,放棄了上述兩個文件放入iTunes中同步時間和成功安裝應用程序。我無法讓它爲我複製。我需要在本地再現這個問題以找出問題。任何想法如何可以做到?

回答

16

您是否添加了權利?將簽署放在目標級別,而不是項目級別?選擇Ad Hoc配置文件?在構建之前做一次清潔?選擇Ad Hoc設備與構建?

最好的辦法是遵循蘋果的文檔正是,讓您的構建設置準確匹配蘋果。

+3

未在目標上設置它是問題。特設設置和項目設置有什麼不同? – 4thSpace 2009-12-07 16:11:24

+0

另外,爲什麼我在同步ad hoc時從未看到用戶的行爲? – 4thSpace 2009-12-07 16:13:35

+1

Apple的文檔在哪裏?很難找到解釋從開始到結束整個過程的正確位置(它不在供應門戶中) – Jonny 2011-04-23 04:41:45

3

最近有一位測試人員在最近的版本中遇到了這個問題。事實證明,我的測試人員已經重置了他們的iPod Touch,並在此過程中刪除了配置文件。

只是要考慮。

2

我得到了這個錯誤,做了比其他任何人發佈的東西都多。我在配置文件中添加了新設備,但忘了下載更新後的版本,將其添加到Xcode中,然後將該項目指向它。當我正確設置它時,測試人員能夠很好地安裝應用程序。

4

從文檔:

構建應用程序的Ad Hoc 分佈與建設 應用程序的App Store的分佈, 的兩個額外的步驟異常。 首先,您需要創建Ad Hoc 分發預配配置文件和 將您想分發的iOS設備的UDID添加到使用 iPhone Developer Program Provisioning Portal。其次,您需要創建 代碼簽名授權文件。有關如何創建 授權文件的 信息,請參閱iOS開發指南中的 的管理 應用程序授權部分。


管理應用程序應享權利

的iOS提供了訪問特殊 資源和能力,如 是否您的應用程序可以 調試,通過屬性稱爲 權利。要指定應用程序中的授權 信息,您需要將包含授權定義 (鍵/值對)的授權屬性列表文件 添加到您的項目中。 當您構建應用程序時,Xcode 將該文件複製到生成的 應用程序包中。

要的權利屬性列表 文件添加到您的項目:

在組&文件列表中,選擇 資源組。選擇文件>新建 文件。選擇iOS>代碼簽名> 權利模板。將文件命名爲 Entitlements.plist。 (你可以使用任何 名;只是確保它的代碼的價值相匹配 簽約享權利建立 設置,如本 節後面解釋)設置 屬性列表文件的類型iPhone 授權。在文本編輯器中選擇文件 ,選擇查看> 屬性列表類型> iPhone 權利plist。

將您的授權條目添加到 文件。對於 您需要定義每個權利屬性:

單擊添加兒童或添加同級 按鈕將選定的 行權。添加子按鈕有三個描述層次結構的線 ,添加 兄弟按鈕在 上有一個加號(+)。從出現的彈出菜單中選擇授權屬性 。如果 您需要添加的權利 未出現在菜單中,請選擇 查看>屬性列表類型>默認 用於文件類型。然後輸入 授權密鑰的名稱和類型。

輸入屬性的值。設置 代碼簽名授權版本 設置目標爲名稱 新增權利 屬性列表文件。


一旦你 創建了應享權利文件 並將其添加到您的代碼簽名 應享權利編設置,打開 應享權利文件,添加或編輯 獲得任務,允許鍵將其設置爲 false。

除了壓縮您的.app 包分發您特設建立 測試人員等建議 你之前也 分佈壓縮 供應配置文件,因爲某些電子郵件 客戶端和服務器可能會破壞 供應配置文件。

有關Ad Hoc 分配的信息,請閱讀 發佈iOS應用程序開發指南中的應用程序 部分。

+0

這是一個很好的答案,獲取任務允許密鑰是大多數人的主要障礙。 – 2011-01-22 10:32:45

6

檢查捆綁在.app文件中的imbedded.mobileprovision文件以確保UID在那裏是一個好主意。只要做到以下幾點:

  1. 解壓ProblemApp.ipa
  2. CD有效載荷/ ProblemApp.app
  3. 微微imbedded.mobileprovision

查找設備的UID這個文件中。如果它不在那裏,那麼它可能不會被添加到門戶內的配置文件中。

1

這是另一個有趣的一個....如果你有iPhone和ipad單獨的授權文件,請確保你設置文件的目標爲每個特定的構建...否則它不會顯示在構建和你'會得到這個錯誤

0

這對運行IOS 3.1.3的iPhone 3G不適用。我通過查看設置 - >一般(沒有列出配置文件選項)來驗證分發配置文件不在電話中。

然後我安裝了iPhone配置實用程序:

http://support.apple.com/kb/DL851

然後:

  1. 運行iPhone配置
  2. 拖放embedded.mobileprovision文件到App
  3. 點擊設備上左側
  4. 點擊「provisioning pr」 ofiles」標籤
  5. 單擊配置文件,然後點擊‘安裝’按鈕

然後安裝該應用程序就好了。

1

我到達這裏是因爲我和OP有同樣的問題。事實上,我沒有授權文件中的UDID,儘管我確信我在XCode組織者中使用了刷新。另一次刷新沒有區別。

最後我刪除了所有的配置文件,然後,然後做了刷新。事情現在起作用。

我不知道這是我的設置中的毛刺,還是操作員錯誤。但爲了防止其他人發現自己處於這種情況,可能需要付出一些努力才能移除配置文件,然後進行刷新。

0

我也和OP一樣有問題。愚蠢的錯誤:當我將它註冊爲設備時,我意外地丟棄了我試圖臨時分發給它的設備的最後兩位數字。

0

我有同樣的問題兩次(xcode 4.2 ios 5

月1日,時間我忘了在架構中添加的ARMv6

2,時間我已經創建了具有相同的開發者ID,我應該刪除別人多置備文件根據使用捆綁標識符的鑰匙鏈...並且我錯誤地刪除了有效和使用的其他kechain