gpt4 book ai didi

ios - 如何在iOS和watchOS 2之间建立与Lister App类似的共享框架的项目?

转载 作者:可可西里 更新时间:2023-11-01 05:04:20 24 4
gpt4 key购买 nike

Lister app是Apple唯一的Apple Watch示例项目之一。它最初是为了支持watchOS 1而编写的,后来在9/16/15进行了更新以支持watchOS2。因此,有许多目标,组等名称不一致,因此很难理解是什么。

我想创建一个类似的项目,其中有一个iOS和带有共享代码/框架的watchOS 2。由于Lister应用程序的复杂性,我很难理解如何设置这样的项目。

如何设置项目,以便可以在watchOS 2和iOS应用之间共享代码? (注意:不需要对watchOS 1的支持。)

作为引用,这是Lister应用程序中的目标,方案和组的列表:

  • 目标: Lister,Lister测试,今日Lister,Lister WatchKit扩展,Lister WatchKit App,ListerKit,ListerKit测试,Lister Watch扩展,Lister Watch App,ListerKit(watchOS),Lister(OS X),今日Lister(OS X) ),ListerKit(OS X),ListerKit测试(OS X)
  • 方案: Lister,Today Lister,Lister WatchKit App,Glance-Lister WatchKit App,ListerKit,Lister Watch App,Glance-Lister Watch App,ListerKit(watchOS),Lister(OS X),Lister Today(OS X), ListerKit(OS X)
  • 组: Lister iOS应用程序,Lister WatchKit应用程序,共享Lister WatchKit代码,Lister Watch应用程序,Lister OS X App,共享ListerKit框架代码,共享Lister资源
  • 最佳答案

    该项目非常复杂,因为它同时支持watchOS 1和watchOS 2。

    概括

    如果您只想支持watchOS 2并在iOS和watchOS 2之间共享代码,则需要创建两个框架,每个平台一个。

    watchOS 1:

    只需在两个目标(Lister WatchKit ExtensionLister Watch Extension)中都包含.swift文件,即可在watchOS 1和 watchOS 2 之间共享

  • 代码。 (请参阅Shared Lister WatchKit代码组。)
  • 代码通过Lister iOS框架(ListerKit)在watchOS 1和 iOS 之间共享。

  • watchOS 2:

    只需在两个目标( Lister WatchKit ExtensionLister Watch Extension)中都包含.swift文件,即可在watchOS 2和 watchOS 1 之间共享
  • 代码。 (请参阅Shared Lister WatchKit代码组。)
  • 通过在Lister iOS框架( List.swift)和Lister watchOS 2框架( ListerKit)中包括共享文件(例如 ListerKit (watchOS)),在watchOS 2和 iOS 之间共享
  • 代码。 (请参阅“Shared ListerKit框架代码”组。)

    在watchOS 2 Transition Guide的Sharing Code Between an iOS App and a watchOS App部分中,他们确认了watchOS 2的这种设置:

    In watchOS 2, you can share code, but not frameworks, between your iOS app and Watch app. Because the apps run on separate platforms with different architectures, source files must be compiled separately for each platform. If you still want to use a framework to manage any shared source files, you must create separate framework targets for each platform and add your shared source files to each framework.

    [...]

    NOTE

    After you create a separate framework target for your WatchKit extension, you must manage the contents of that framework separately for both iOS and watchOS. If you add files to the iOS version of the framework, remember to add them to the watchOS version.



  • 详细目标信息

    注意:在此项目中,无论您在哪里看到WatchKit,它通常都指向watchOS 1,而Watch则指向watchOS 2。

    Lister iOS应用程序( Lister):
  • 目标:列表器
  • 产品名称: Lister
  • 支持的平台: iOS
  • 组: Lister iOS应用程序/主应用程序
  • 目标依赖项: Lister iOS框架(ListerKit)
  • 目标依赖项: Lister iOS今日小工具(Lister Today)
  • 目标依赖项: Lister watchOS 2 App(Lister Watch App)
  • 目标依赖项: Lister watchOS 1扩展(Lister WatchKit Extension)
  • 链接与: Lister iOS Framework(ListerKit.framework)
  • 嵌入: Lister iOS框架(ListerKit.framework)
  • 嵌入: Lister watchOS 1扩展名(Lister WatchKit Extension.appex)
  • 嵌入: Lister iOS应用程序(Lister.appex)
  • 嵌入: Lister watchOS 2 App(Lister Watch App.app)

  • Lister iOS Today小部件( Lister TodayLister):
  • 目标:今天的Lister
  • 产品名称: Lister
  • 支持的平台: iOS
  • 组: Lister iOS应用程序/今天的小部件
  • 目标依赖项: Lister iOS框架(ListerKit)
  • 链接与: Lister iOS Framework(ListerKit.framework)
  • 用法: Lister iOS应用程序(Lister)

  • Lister iOS框架( ListerKit):
  • 目标: ListerKit
  • 产品名称: ListerKit
  • 支持的平台: iOS
  • 组: Lister iOS应用程序/ListerKit框架(iOS)
  • 组:共享ListerKit框架代码
  • 用法: Lister iOS应用程序(Lister)
  • 用于: Lister iOS今日小工具(Lister Today)
  • 用于: Lister watchOS 1扩展名(Lister WatchKit Extension)

  • Lister watchOS 1扩展名( Lister WatchKit Extension):
  • 目标: Lister WatchKit扩展
  • 产品名称: Lister WatchKit扩展
  • 支持的平台: iOS
  • 组: Lister WatchKit应用程序/Lister WatchKit扩展
  • 组:共享列表器WatchKit代码
  • 目标依赖项: Lister iOS框架(ListerKit)
  • 目标依赖项: Lister watchOS 1应用程序(Lister WatchKit App)
  • 用法: Lister iOS应用程序(Lister)

  • Lister watchOS 1应用程序( Lister WatchKit App):
  • 目标: Lister WatchKit应用程序
  • 产品名称: Lister WatchKit App
  • 支持的平台: iOS
  • 组: Lister WatchKit应用程序/Lister WatchKit应用程序
  • 用于: Lister watchOS 1扩展名(Lister WatchKit Extension)

  • Lister watchOS 2扩展名( Lister Watch Extension):
  • 目标: Lister监视扩展
  • 产品名称: Lister Watch扩展
  • 支持的平台: watchOS
  • 组: Lister Watch应用程序/Lister Watch扩展
  • 组:共享列表器WatchKit代码
  • 组: Lister Watch App/ListerKit框架(watchOS)
  • 目标依赖项: Lister watchOS 2框架(ListerKit (watchOS))
  • 链接与: Lister watchOS 2 Framework(ListerWatchKit.framework)
  • 嵌入: Lister watchOS 2框架(ListerWatchKit.framework)

  • Lister watchOS 2应用程序( Lister Watch App):
  • 目标: Lister Watch App
  • 产品名称: Lister Watch App
  • 支持的平台: watchOS
  • 组: Lister Watch App/Lister Watch App
  • 用法: Lister iOS应用程序(Lister)

  • Lister watchOS 2 Framework( ListerKit (watchOS)ListerWatchKit):
  • 目标: ListerKit(watchOS)
  • 产品名称: ListerWatchKit
  • 支持的平台: watchOS
  • 组: Lister iOS应用程序/ListerKit框架(iOS)/iCloud和本地存储/ListUtilities.swift
  • 组:共享ListerKit框架代码
  • 用于: Lister watchOS 2扩展名(Lister Watch Extension)

  • 注意事项:
  • Shared Lister WatchKit Code组包含watchOS 1和watchOS 2扩展共享的代码。
  • Lister Watch App/ListerKit Framework (watchOS)组的名称意味着它应该是ListerKit (watchOS)目标的一部分,但是它是Lister Watch Extension目标的一部分。
  • * Shared ListerKit Framework Code主要用于在iOS,watchOS和OS X ListerKit框架之间共享代码。但是,ListerKit (watchOS)目标中省略了一些文件:SegueHandlerType.swiftCheckBoxLayer.swift
  • 尽管该项目中主要使用术语WatchKit来表示watchOS 1,但Lister watchOS 2 Framework的产品名称为ListerWatchKit,但仅在watchOS 2中使用。注意:watchOS 1不使用框架。
  • 我从列表中省略了OS X组/目标/等。
  • 关于ios - 如何在iOS和watchOS 2之间建立与Lister App类似的共享框架的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34387128/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com