1

我在我的應用程序中使用了Apple推送通知,並且它在Adhoc Distribution中正常工作。我已將應用程序提交到AppStore,但推送通知不適用於我的應用程序,並收到類似「Apple拒絕您的設備令牌」的消息。我已經使用了獨立的.p12文件進行開發和生產構建,並在Urban Airship上傳。Apple推送通知服務在使用iPhone中的Urban Airship的生產版本中不起作用?

注:

但我已經用於開發和生產同一個應用程序鍵和應用主密鑰。所以它不適用於推送通知。如果我爲分發創建單獨的密鑰並且必須將這些密鑰用於我的分發版本。這樣它就能解決問題。當在城市飛艇上創建應用程序密鑰時,我會得到應用程序密鑰,應用程序密鑰和應用程序主密鑰這三個密鑰。我在應用程序中使用了應用程序密鑰和主密鑰。它是否正確?所以請指導我。

感謝

問候,
Pugal

+0

您是否使用過更新的配置文件進行分發?即啓用推送通知後? – Shreesh 2011-04-20 18:09:20

+0

@Shreesh,是的,我已經做到了。 – Pugal 2011-04-21 08:43:44

回答

3

你需要有:

  1. 在蘋果的iOS Provisioning Portal中
    • 的App ID的
      • 生成發展推SSL證書
      • 生成生產推送SSL證書
  2. 在城市飛艇應用編輯器
    • 創造發展
      • 應用程序中使用的應用程序開發推送SSL證書在蘋果推送證書項
      • 複製應用程序密鑰(開發)
      • 複製應用程序祕密(發展)
    • 創建生產 應用
      • 使用的應用生產推送SSL證書在蘋果推送證書項
      • 複製關閉程序鍵(生產)
      • 複製關閉應用程序祕密(生產)
  3. 設置Xcode的代碼簽名使用證書
  4. 我使用下面的代碼來設置城市飛艇鍵在基於宏編譯時間:

    - (void)urbanAirshipTakeoffWithLaunchOptions:(NSDictionary *)launchOptions { 
    
    // Init Airship launch options 
    NSMutableDictionary *takeOffOptions = [[NSMutableDictionary alloc] init]; 
    [takeOffOptions setValue:launchOptions forKey:UAirshipTakeOffOptionsLaunchOptionsKey]; 
    
    // Build the Urban Airship TakeOffOptions 
    // Create Airship singleton that's used to talk to Urban Airship servers. 
    NSMutableDictionary *airshipConfigOptions = [[NSMutableDictionary alloc] init]; 
    
    //Set up the Push keys 
    NSLog(@"Appdelegate_Pad:didFinishLaunchingWithOptions - TARGET_1"); 
    [airshipConfigOptions setValue:@"xxx" forKey:@"DEVELOPMENT_APP_KEY"]; 
    [airshipConfigOptions setValue:@"xxx" forKey:@"DEVELOPMENT_APP_SECRET"]; 
    [airshipConfigOptions setValue:@"xxx" forKey:@"PRODUCTION_APP_KEY"]; 
    [airshipConfigOptions setValue:@"xxx" forKey:@"PRODUCTION_APP_SECRET"]; 
    
    // If CONFIGURATION_Debug is defined, then use the development servers, else use the production servers 
    #ifdef CONFIGURATION_Debug 
    [airshipConfigOptions setValue:@"NO" forKey:@"APP_STORE_OR_AD_HOC_BUILD"]; 
    NSLog(@"Using Development Servers at Urban Airship"); 
    #else 
    [airshipConfigOptions setValue:@"YES" forKey:@"APP_STORE_OR_AD_HOC_BUILD"]; 
    NSLog(@"Using Production Servers at Urban Airship"); 
    #endif 
    
    // Set and start Urban Airship 
    [takeOffOptions setValue:airshipConfigOptions forKey:UAirshipTakeOffOptionsAirshipConfigKey]; 
    [UAirship takeOff:takeOffOptions]; 
    
    // Register for push notifications 
    [[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge | 
                         UIRemoteNotificationTypeSound | 
                         UIRemoteNotificationTypeAlert)]; 
    

    }

一個最好的東西這個設置是,我可以發送我的測試者測試者推送我的生產用戶無法看到的消息(即:TestFlight上的新測試版!)。

相關問題