简体   繁体   English

提交2个版本的iOS应用的正确方法是什么?

[英]What's the correct way to submit 2 versions of an iOS app?

I have the following scenario: 我有以下情况:

  • already have a free app with ads on app store 已在应用商店上有一个免费的带有广告的应用
  • wanna submit a paid version including new features and without ads 想提交包含新功能且没有广告的付费版本
  • wanna keep the free option with ads 想保留广告的免费选项

What would be the best approach to do this? 这样做的最佳方法是什么? Should I create another app bundle id for the paid app and just update the free one with the same bundle id? 我应该为付费应用程序创建另一个应用程序捆绑包ID,然后只用相同的捆绑包ID更新免费的捆绑包吗?

An other option would be In App Purchase, which would allow you to have the exact same version on AppStore. 另一个选择是“在应用程序中购买”,这将使您在AppStore上具有完全相同的版本。

You just simply unlock the paid features if the user bought your app and hide the ads. 如果用户购买了您的应用并隐藏了广告,则只需解锁付费功能即可。 You should consider this approach, if you want to migrate data from the free version to the paid one ( a database, settings, user generated stuff, etc ). 如果要将数据从免费版本迁移到付费版本(数据库,设置,用户生成的内容等),则应考虑这种方法。

In terms of project , you should have the same project with 2 different target . 项目而言 ,您应该有一个具有两个不同target的相同项目

In terms of AppStore , yes, are 2 different app (one for each target). AppStore而言是的,是2个不同的应用程序 (每个目标一个)。

You can use the app you already have, you just have to add a new target (duplicate it). 您可以使用已有的应用程序,只需添加一个新目标(复制目标)即可。

Select your project in the Project Navigator and select your projects target by right clicking: 在“ Project Navigator选择项目,然后通过右键单击选择项目目标:

在此处输入图片说明

Next you have to set a new Bundle ID , Version and Build number. 接下来,您必须设置一个新的Bundle IDVersionBuild Version号。

Each target is a single app which needs to set up an App inside ITunesConnect . 每个目标都是一个应用程序,需要在ITunesConnect内设置一个应用程序。 When uploading your app, you just have to select the target you want at the top of xCode: 上传应用程序时,只需在xCode顶部选择所需的目标:

在此处输入图片说明

Programmatically you can make changes just for a specific Bundldeidentifier by using this snippet: 通过编程,您可以使用以下代码段仅针对特定的Bundldeidentifier进行更改:

if([[[NSBundle mainBundle] bundleIdentifier]    
        isEqualToString:@"[Bundle id]"]){
    // do something
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM