iOS Swift:如何在同一个项目中为不同的国家/地区构建两个不同的.ipa

时间:2015-02-04 07:46:42

标签: ios swift xcode6 software-distribution

我在Swift中编写了一个iOS应用程序。 该应用程序很简单,只是一个连接到URL的UIWebView。

class ViewController: UIViewController {
    @IBOutlet weak var customWebView: UIWebView!

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        if let url = NSURL(string: "http://A_COUNTRY_URL") {
            let request = NSURLRequest(URL: url)
            customWebView.loadRequest(request)
        }

    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

}
  1. 我想将其保存在一个存储库(一个项目)中
  2. http://A_COUNTRY_URL适用于分发到国家/地区的.ipa
  3. 需要分发另一个国家/地区B,网址为http://B_COUNTRY_URL
  4. 两个不同的.ipa应该有两个不同的 Bundle ID
  5. 是否有可能为Xcode上的一个项目构建两个不同的.ipa? 如果是的话,怎么做?

    提前致谢。 埃里克

3 个答案:

答案 0 :(得分:2)

在本教程中,Ray Wenderlich http://www.raywenderlich.com/68613/create-paid-lite-version-iphone-app解释了如何制作两个版本的app,一个付费,一个精简使用不同的目标作为更好的方法。

希望它有所帮助!

答案 1 :(得分:1)

您可以在xcode中使用targets。目标用于重用不同产品的代码。

以下是一些有用的链接

Xcode Target

Tutorial

基本上,您只需更改需要不同的文件的目标成员资格。您还可以在构建设置中为目标创建宏,以检查代码,如

#ifdef COUNTRY_A
//do for A
#else 
//do for B
#endif

用于创建preprocessor macro

答案 2 :(得分:0)

我确实不鼓励一些逻辑。 苹果公司非常敏感,因为iOS12对相同应用程序具有不同的内容。 (这件事发生在我身上,并在WWDC2018上与苹果工程师亲自交谈)

所以我认为如果应用程序应该显示不同的内容,(您可以从服务器上找到它。) 您应该仅基于用户偏好来更改URL ar运行时(然后再次。.苹果不鼓励在应用程序内部更改语言设置...)