美文网首页PC
使用iOS UIKit框架,快速开发macOS桌面端应用

使用iOS UIKit框架,快速开发macOS桌面端应用

作者: 晨土飞扬 | 来源:发表于2019-09-29 19:52 被阅读0次

    WWDC19 苹果开发者大会上,苹果发布了针对iPad平台的iPadOS系统。iPadOS是苹果专门为iPad产品线量身打造的操作系统,在iOS13的基础上加入了专门为iPad优化的操作以及专属功能,iPadOS在很多地方都和macOS非常像,可以理解为轻量版macOS。
    现在开发者们可以利用苹果提供的新工具包,只要对 iPad 应用的底层代码做简单的调整,就能直接创建一个可以在 Mac 电脑上运行的应用。
    苹果的跨平台计划是如何实现的,传送门:将 iPad 应用移植到 Mac 电脑上,苹果的跨平台计划是如何实现的?
    下面这篇文章介绍的是如何快速搭建工程,使用UIKit框架提供的控件搭建界面,并运行在Mac电脑上。

    准备环境: macOS 10.15(Catalina)、Xcode 11。

    创建工程

    1. 仍然选择iOS平台创建工程。

    2.将TARGETS -> General下的Mac复选框选中,屏幕会弹框提示:Enable Mac support? 选择Enable。运行终端会默认选择到My Mac。(注意:选择Mac复选框时,iPad复选框一定是选中状态。如果手动取消iPad复选框,系统会同时取消Mac复选框)

    3.创建Mac版本的唯一标识(Mac-specific bundle ID )
    如果是通过这种方式构建Mac版本的iPad应用程序并想上架Mac App Store,则Mac版本必须具有与iPad应用程序不同的bundle ID和App Store Connect中的App记录也会不同。如果有应用内购买或订阅,则需要在App Store Connect中为Mac版本重新创建它们(在App Store Connect帮助中创建“应用内购买”和“创建可自动更新的订阅”)。

    Mac App Store要求项目中的每个包都具有唯一的bundle ID,对于Mac版本,bundle ID带有maccatalyst前缀,后跟iPad应用bundle ID。相同的前缀已添加到iPad应用程序扩展名的Mac版本。

    官方介绍说可以改变Mac版本bundle ID的格式,不过具体如何配置描述的不太详细,望大神指点:

    You can change the Mac version bundle ID format but then you need manually sign the app. Set the Derive Mac Catalyst Product Bundle Identifier (DERIVE_MACCATALYST_PRODUCT_BUNDLE_IDENTIFIER) build setting to NO, add a macOS conditional value for Product Bundle Identifier (PRODUCT_BUNDLE_IDENTIFIER)and Provisioning Profile (PROVISIONING_PROFILE_SPECIFIER), then manually sign the app.

    4.添加framework和library时选择对应的Platform和Embed.

    5.添加控件,编写代码。这里我就以经典的UITableView控件为例,在storyboard中添加tableView,设置好约束、datasource、delegate。


    运行效果如下:


    注意:由于Mac app界面尺寸可调节,所以在用代码创建控件的时候,用frame就不好使了,最好使用Masonry等方式设置约束。


    求指正!求赞!求成长!

    相关链接:

    iPad Apps for Mac

    Creating a Mac Version of Your iPad App

    相关文章

      网友评论

        本文标题:使用iOS UIKit框架,快速开发macOS桌面端应用

        本文链接:https://www.haomeiwen.com/subject/tpdnyctx.html