【问题标题】:Adding Framework and App Extension targets to IOS App project, am I doing it correctly?将框架和应用程序扩展目标添加到 IOS 应用程序项目中,我做对了吗?
【发布时间】:2015-10-02 03:34:51
【问题描述】:

我正在学习 IOS/Swift 开发,我想构建一个 IOS 应用程序,该应用程序将来会有自己的 Today Extension。我读过最好将应用程序及其扩展之间的通用逻辑(例如访问 Internet 资源、对结果执行某些工作等的逻辑)放入自定义框架中。因为我认为我需要在开发应用程序期间更改框架和应用程序代码,我想避免在单独的项目中构建框架,而不是使用 Show In Finder 功能来定位框架包,然后将其拖放到应用程序中项目.. 所以我想知道这是否是使用应用程序设置工作区的正确方法、它使用的框架以及应用程序的今日扩展:

  1. 使用 IOS 应用目标创建一个新项目
  2. 在 Project Navigator 中选择项目,然后Editor->Add Target... 并指定一个Cocoa Touch Framework
  3. Editor->Add Target... 并指定 Today Extension
  4. 在链接框架和库中添加框架

通过这种方式,我看到对框架源的更改不需要重新编译框架目标,可能是因为项目知道需要重新编译框架源,即使我只构建和运行使用它的 IOS App 目标框架?我做对了吗?我已经看到以这种方式创建的 Today Extension 并没有在 Build Phases -> Target Dependencies 中列出框架,而 IOS App 确实如此,但它们都正确使用了框架的更新代码当我更新它时。

然后,我在编译项目时注意到以下警告,但我不知道它是否与我设置项目的方式有关:

ld: warning: linking against dylib not safe for use in application extensions: /Users/gianni/Library/Developer/Xcode/DerivedData/TestFrameworkApp-dshihhfiuepeqzddbnpgnfwilhem/Build/Products/Debug-iphonesimulator/TestFramework.framework/TestFramework

顺便说一句,Products 文件夹中的条目总是红色是否正常?是不是因为我没有为 IOS 设备构建的付费开发者帐户,所以我只为 IOS 模拟器构建?这是否会阻止我构建一个可以为其他项目导出的框架,因为我无法通过右键单击框架产品并选择 Show In Finder 找到框架包(所以我可以'不要将它拖放到另一个项目中)?

我希望我已经足够清楚,并且你会指出我正确的方向,以了解开始我的新项目的建议方式是什么:)

【问题讨论】:

    标签: ios swift frameworks cocoa-touch swift-custom-framework


    【解决方案1】:

    在我看来,你正朝着我要走的确切道路前进。

    关于您看到的警告...我相信,当您尝试使用扩展中不允许的 API 时,为您的共享框架检查“仅允许应用扩展 API”会抑制这种情况并导致构建失败。

    【讨论】:

      猜你喜欢
      • 2020-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-20
      • 2019-08-29
      • 2021-12-30
      • 1970-01-01
      相关资源
      最近更新 更多