2009-12-04 45 views
11

此問題與我在此處找到的其他人有點不同。我在App StoreKit正在工作,我可以成功地在我的商店中列出產品。我瀏覽了Apple的文檔,從未看到我的問題(我可能錯過了它)。StoreKit將返回所有產品ID

我的客戶(非盈利)希望能夠通過他們的應用程序接受捐贈。我希望讓他們有能力即時添加新的捐贈活動,而無需用戶更新其應用程序。我的意思是,他們可能會有一個特殊的「幫助我們贊助一個活動即將到來的植樹節」,並接受特別針對該案例的捐贈。

我目前正在讀同類產品:

SKProductsRequest *request= 
     [[SKProductsRequest alloc] initWithProductIdentifiers: 
      [NSSet setWithObjects: @"goldSponsor", @"silverSponsor"]; 

這意味着如果植樹節事件出現時,我會發布更新,以包括@「arborSponsor」在我的要求清單。我如何要求我的包裝下的每件產品?

我試過使用@「com.thedomain。*」和其他一些猜測沒有運氣。是否有可能返回整個列表,我是否缺少一些非常簡單的東西?謝謝!

回答

21

不幸的是,您必須提供所有您想要獲取信息的產品的ID,只要我能夠看到。

處理此問題的一種方法是將您的產品ID存儲在遠程服務器上,然後向服務器發出請求以在加載商店時下拉當前的一組ID。

這將允許您添加或刪除itunes方面的產品,而不必將任何二進制更新提交到您的應用。

我想你可能會找到一個快樂的媒介,在iPhone應用程序中緩存產品列表,然後只是快速請求,看看是否有任何變化,所以你甚至不需要獲得完整列表每一次。

這可以在服務器端使用一個簡單的http API或甚至只是一個xml文件來完成。

從應用程序內購買編程指南

Apple建議您獲取產品從你的服務器 標識符,而不是 包括他們的財產 列表。這爲您提供了靈活性 添加新產品,而無需更新您的應用程序 。

+1

謝謝!那就是我所害怕的。希望這會讓我有理由推動他們爲此獲得服務器。 – ryanday 2009-12-04 14:07:39

2

我有同樣的問題,但我想我有辦法解決它通過提前規劃產品ID。不要將每個產品ID命名爲「goldSponsor」之類的特殊產品,只需將它們編號爲「1」,「2」,「3」......就可以添加多少個產品。將名稱設置爲「黃金贊助商」,並將描述設置爲任何你想要的。當您的應用程序開始運行時,請求前N個順序產品ID。如果它們都返回有效狀態,請申請另外N個產品ID,直到您獲得無效ID爲止。

我打算用Apple託管的內容來做到這一點。我也在考慮使用產品的描述字段來編碼關於我下載的數據的詳細信息(在我的例子中是地圖的角落座標)。我仍然會使用完整的「com.company.product.1」作爲每個ID並從那裏順序編號。

+0

err ...但是,當你刪除/不清楚銷售任何id你的邏輯將停止工作。 – 2017-01-10 21:26:29