2016-01-19 37 views
6

我理解理想情況下的部署模型,即您的所有用戶一直將其應用更新爲最新的應用商店版本。但事實上他們沒有。我如何使用CodePush處理反應原生iOS應用程序的不同構建版本?考慮以下兩種情況:CodePush:如何部署到相同的部署配置的多個版本的版本?

1)我一直在使用CodePush來部署新的js bundels到我的應用程序的1.0.0版本。現在我發佈1.1.0並希望通過CodePush提供新代碼。據我所見,現在有部署到1.0.0和1.1.0的方式,同時既沒有不同的捆綁,也沒有同一個捆綁。所以一旦我推出一個捆綁到1.1.0的版本,就沒有辦法更新沒有通過應用商店更新的1.0.0應用。

2)據我所知,解決這個問題的一個方法是隻發佈增加版本號(CFBundleVersion)的新版本,但版本字符串不變(CFBundleShortVersionString)。但是,這具有這樣的效果,即使是剛剛下載的最新應用商店版本(例如1.1.0(8)),也會始終首先在代碼推送上加載最新的捆綁包。

有沒有辦法做到這一點乾淨,沒有不必要的更新?

+0

我想用#codepush標記這個,但我不允許。也許管理員可以做到這一點?謝謝。 –

回答

7

我們計劃很快優化這個方案,因爲正如您所提到的,我們意識到它有多麼普遍。與此同時,我們推薦支持這種方式(以及我們許多用戶目前正在做的事情)的方式是爲您的1.1.0版本在與現有1.0相同的CodePush應用程序中創建一個新的CodePush部署。 0部署,並在將1.1.0提交給商店之前更新Info.plist文件以指向新的部署密鑰。

這樣,您可以將更新發布到1.0.0用戶和1.1.0用戶。如果您想向兩者發佈相同的更新,則必須運行釋放命令兩次,但如果您的更新只針對一個,則只需將其釋放到相應的部署。

這個解決方案對於人們來說工作得很好,並且對於如何同時管理多個二進制版本有着非常明確的「好處」,但它顯然也是一種破解版,而且更加冗長/笨重的應該是。

我們將在接下來的月份簡化這一體驗,並希望獲得關於如何最好地適應您的情況的反饋。如果您有任何其他問題/等([email protected]),請隨時直接給我發電子郵件。

謝謝!

+0

非常感謝您的快速回復。我也是這樣計劃的。如果你想支持這種情況,我建議只跟蹤部署下的每個構建版本,而不是僅使用最新版本。所以你可以推到1.0.0和1.1.0,並讓它們都由相同的部署服務。然後,您可以一次添加推送到多個版本並在版本之間進行推廣。基本版本將是自動生成的子部署。 –

+1

這個答案有任何更新嗎? – Will