2011-06-20 116 views
26

我有一個簡單的問題。我一直在測試我的iPhone應用程序的開發推送通知證書,並且工作正常。我只想知道在將應用程序提交給AppStore之前是否可以測試生產證書?我確實嘗試過,但是當我使用生產證書時,消息不會出現。當我使用生產證書時,Apple是否要求應​​用程序在AppStore中?iPhone:生產證書推送通知測試

謝謝。

回答

36

如果您創建一個Ad-Hoc配置文件,您會發現它使用生產證書,這可能是最簡單的測試方法。

UPDATE:

the Apple documentation here

有一些步驟,以這一點,但在本質上;

1)團隊負責人需要創建一個新的分發配置文件。這是通過在創建新配置文件時選擇「Ad Hoc」而不是「App Store」來完成的。請注意,您無法爲此使用通配符應用程序ID,您需要爲應用程序指定一個特定的應用程序ID,儘管您可能已經擁有該應用程序ID。

2)設置您的系統以便構建歸檔文件時使用新創建的Ad Hoc配置,設置此步驟所需的步驟在網上有詳細記錄,here is one example

3)現在,當您將.ipa分發到鏈接到Ad Hoc置備配置文件的設備時,您會發現推送通知系統正在使用生產服務器。另外,我發現testflightapp對於管理Ad Hoc構建的分佈是非常有用的,儘管我最近才發現它,但現在正在節省我幾個小時,因爲我正處於運行中beta測試程序。

+1

感謝羅傑,但請您詳細說明Ad-Hoc配置文件嗎? – applefreak

+0

我已經將我的答案稍微詳細地擴展了一下 – Roger

+0

非常感謝羅傑給出了很好的解釋! – applefreak

5

替代

如果您將節省更多的時間和 調試 測試這些通知在生產環境中,無需構建&每次發佈,請按照下列步驟操作:

  1. 創建&安裝您的分發資源調配配置文件
  2. 使用發佈配置而不是調試來創建新方案(請參閱請選擇它
  3. 請確保您的應用目標版本設置下的發佈配置選擇了您的發行版配置文件,
  4. Rock'n'roll!

如何創建一個新的方案

  1. 點擊應用程序的名稱,左側角球:

    enter image description here

  2. 選擇「新建方案... 「並給它命名,

  3. 然後,通過再次打開該菜單編輯它,選擇「編輯計劃...」,在「構建配置」
  4. 選擇「釋放」:

    enter image description here

  5. 選擇它,所以它出現在左上角,你就完成了!

1:你不能使用分配,也不進行點對點配置調試,看this thread

7

對於即席分佈,請按照以下說明:

  1. 在Provisioning Portal,創建分發證書。
  2. 獲取您打算用於測試的iPhone的「設備ID」。打開iTunes - >連接你的設備 - >選擇你的設備 - >在總結窗格中,點擊序列號標籤,它將變成標識符(40十六進制字符) - >選擇編輯,複製。
  3. 在調配門戶中,轉至設備 - >添加新設備 - >輸入複製的設備ID併爲其指定名稱。
  4. 在調配門戶中,創建一個分配調配配置文件。 (轉到配置 - >分配)。對於Distibution類型,請選中「AdHoc」。選擇應用程序ID,如果您有分發證書,將自動在此處選擇。選擇新輸入的設備並提交。下載此配置文件。
  5. 在Xcode中,窗口 - >管理器。點擊Devices並選擇Library - > Provisioning Profiles。如果您是管理員,那麼點擊刷新應該獲取新創建的配置文件。如果沒有,請將臨時供應配置文件拖放到此列表中。
  6. 在Xcode中,在您的項目中Build Settings - > Code Signing Identity - > Release部分中,選擇「iPhone Distribution」。對於「任何iOS SDK」,請選擇新創建的Provisioning Profile。它將在列表中提供。
  7. 在Xcode中,產品 - >存檔。一旦完成,存檔,它將自動打開存檔窗口。選擇項目,然後單擊分發,在分發窗口中選擇「保存企業或AdHoc部署」 - >選擇與新的供應配置文件對應的「代碼簽名標識」。繼續這個過程,這將創建一個「.ipa」文件。
  8. 發送此.ipa文件和新的供應配置文件以測試adHoc分配。

如何加載測試設備上的自組織分佈:

  1. 打開iTunes,連接您的測試設備。
  2. 將新的配置文件拖放到iTunes。
  3. 拖放.ipa文件iTunes。
  4. 同步你的設備。這會加載應用程序。

推送通知對即席發行工作:

  1. 使用生產證書。
  2. 使用生產APN主機:gateway.push.apple.com
  3. 使用生產APN反饋主機:feedback.push.apple.com。

在測試推送到開發環境時,應該記住一個嚴格的檢查表。他們中的大多數已經在上面提到。但這是解決我的問題的一件事,我想分享一下。我希望它能幫助別人。也就是:

請注意設備令牌ID,這是不同的開發& &生產環境。

- (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { 
     NSString *deviceTokenStr = [[[[deviceToken description] 
             stringByReplacingOccurrencesOfString: @"<" withString: @""] 
            stringByReplacingOccurrencesOfString: @">" withString: @""] 
            stringByReplacingOccurrencesOfString: @" " withString: @""]; 
     UIAlertView *alert= [[UIAlertView alloc]initWithTitle:deviceTokenStr message:Nil delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil]; 
     [alert show]; 
}