【发布时间】:2015-10-02 03:34:51
【问题描述】:
我正在学习 IOS/Swift 开发,我想构建一个 IOS 应用程序,该应用程序将来会有自己的 Today Extension。我读过最好将应用程序及其扩展之间的通用逻辑(例如访问 Internet 资源、对结果执行某些工作等的逻辑)放入自定义框架中。因为我认为我需要在开发应用程序期间更改框架和应用程序代码,我想避免在单独的项目中构建框架,而不是使用 Show In Finder 功能来定位框架包,然后将其拖放到应用程序中项目.. 所以我想知道这是否是使用应用程序设置工作区的正确方法、它使用的框架以及应用程序的今日扩展:
- 使用 IOS 应用目标创建一个新项目
- 在 Project Navigator 中选择项目,然后Editor->Add Target... 并指定一个Cocoa Touch Framework
- Editor->Add Target... 并指定 Today Extension
- 在链接框架和库中添加框架
通过这种方式,我看到对框架源的更改不需要重新编译框架目标,可能是因为项目知道需要重新编译框架源,即使我只构建和运行使用它的 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