在同一个 Xcode 项目中拥有 iOS 和 macOS 应用程序

Posted

技术标签:

【中文标题】在同一个 Xcode 项目中拥有 iOS 和 macOS 应用程序【英文标题】:Having iOS and macOS app in same Xcode project 【发布时间】:2019-01-15 07:52:38 【问题描述】:

我想制作我的 ios 应用的 Mac 版本。我以前从未这样做过,并且有三个问题我无法在互联网上找到答案。

1) 我应该在我的 iOS 应用的 Xcode 项目中为 Mac 组件添加一个新目标吗?如果是这样,如果 Mac 应用还没有准备好,有没有办法只将 iOS 版本的新更新发送到 App Store?

2) 我想为这两个应用程序使用 iCloud 同步,以便用户在 iOS 应用程序上所做的更改可以转到 Mac 应用程序(反之亦然)。 Mac 和 iOS 应用是否需要在同一个 Xcode 项目中才能发生这种情况?

3) 当我想将应用添加到 App Store Connect 时,我只能选择“新应用”(iOS 或 tvOS 应用)或“新 macOS 应用”。如果它们在同一个 Xcode 项目中,我如何将两者(iOS 和 Mac 应用)发送到 App Store?

提前谢谢你!

【问题讨论】:

【参考方案1】:

ad 1.) 如果您想共享代码的某些部分,您应该这样做。它还使使用 git 跨版本维护变得更容易。

ad 2.) 不可以。但是共享 icloud 容器只有在一个应用程序已经被苹果批准后才能工作。

ad 3.) 不,OSX 应用和 ios/tvos 应用不共享同一个应用商店条目,无论它们是否在同一个 xcode 项目中。

【讨论】:

感谢您的快速响应。我只想澄清应用商店流程问题。要将应用程序发送到 App Store,我转到产品 -> 存档,然后从存档页面转到“分发应用程序”。我做了一个假的 Xcode 项目(作为一个 macOS 应用程序开始,然后添加了一个 iOS 目标)。当我归档这个项目时,只有一个“macOS App Archive”类型的归档文件,并且没有用于 iOS 组件的“iOS App Archive”类型的归档文件。 我怎样才能分离到两个目标(Mac 应用和 iOS 应用),以便我只能将 iOS 版本发送到 App Store,尤其是在没有 iOS 存档的情况下? 如果你运行归档,它总是会用它的构建方案归档当前选择的目标。然后,它们会在管理器屏幕中按平台分组,您可以从中分发它们。因此,如果您归档 YourApp-iOS,它根本不会为 OSX 创建归档。

以上是关于在同一个 Xcode 项目中拥有 iOS 和 macOS 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

开发团队没有在Xcode中展示

我有一个Xcode静态库项目,如何添加测试目标,以便我可以在那里运行它? (而不是在链接到它的项目中。)

是否可以在不拥有 iPhone 的情况下发布 iOS 应用程序?在 Xcode 上找不到配置文件

在 OS X 和 XCode 更新后,PhoneGap iOS 应用程序损坏

Bundle ID更改后的iOS问题,Xcode“上传失败”

如何在 XCode 中创建多个控制台窗口