iOS Swift: 如何在同一个项目上为不同的国家建立两个不同的.ipa

iOS Swift: How to build two different .ipa for different countries on the same project

我正在 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是给A国分发的.ipa
  3. 还有一个B国需要分配,URL是http://B_COUNTRY_URL
  4. 两个不同的.ipa应该有两个不同的Bundle ID

是否可以为 Xcode 上的一个项目构建两个不同的 .ipa? 如果是,该怎么做?

提前致谢。 埃里克

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

希望对您有所帮助!

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

这里有一些有用的链接

Xcode Target

Tutorial

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

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

用于创建 preprocessor macro

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

所以我认为如果应用程序应该显示不同的内容,(你从服务器获取它..) 您应该根据用户偏好简单地更改 URL ar 运行时(再次.. Apple 不鼓励更改应用程序内部的语言设置...)