1

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

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

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

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

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

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

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

4

1 回答 1

2

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

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

在此处输入图像描述

于 2015-07-13T19:59:46.917 回答