所以我有一个大项目(我们称它为 A),一些应用 B 的人想将我的应用的一部分放入他们的应用中,所以我创建了一个框架以添加到他们的应用中。创建它的步骤是清理我的应用程序的代码,只留下与他们想要的内容相关的内容,从中创建一个框架,创建一个使用该框架进行调试并查看一切正常的示例应用程序。到目前为止,就框架而言,我所做的只是将我的应用程序 (A) 中的所有框架添加到我的示例应用程序中。
现在我要清理框架和示例应用程序中的东西和剩余部分,然后再将其发送给 B 应用程序人员。所以我开始从我的示例应用程序中一个一个地删除框架,每次在我的设备上构建和运行,每次一切都很完美。我每隔 2-3 个框架停下来进行深度构建清理,并从我的 iphone 中删除了该应用程序,但一切正常。我最终删除了我在我的一个应用程序框架类中专门导入的特定框架,仍然有效。我最后的手段是删除 UIKit 和 Foundation 框架。仍然可以完美运行。我做了深度清理,从我的 iPhone 上卸载,删除了 DerivedData 文件夹的内容,然后重新启动了计算机,一切仍然可以编译、构建和工作。
我开始遇到的唯一问题是我的 Localytics session 向 NSLogs 显示缺少 AdSupport 框架,这可能会损害跟踪......仍然没有崩溃。
据我所知,我正在编译我的 A 应用程序的框架,其中没有任何框架(甚至可以在框架内编译框架吗?)。我的框架是用这个美妙的 git 构建的:iOS Universal Framework Mk 8 (我正在创建一个真正的框架而不是假的)。
我基本上关心这一切,因为我确实想检查哪些框架无用并且可以删除,而我的项目太大而无法检查是否以及谁在使用任何框架。
我正在使用 Xcode 5.0.1、ios7 SDK、iphone5c 。
我确实确保我删除的所有框架都没有留在 Link binary with Libraries 部分...
这些是我从示例应用项目中删除的框架:
CoreGraphics CFNetwork SystemConfiguration MobileCoreServices QuartzCore CoreData StoreKit AdSupport (<-The only one I got any response to getting red of) AVFoundation CoreText XCTest UIKit 基础
感谢任何帮助或想法(:
Best Answer-推荐答案 strong>
我知道这个帖子有点老了,但我也遇到了同样的问题,并认为我的回答可以帮助其他人。
不知何故,我使用的 TestFlight 库中包含所有必需的符号。从我的链接步骤中删除 libTestflight.a 迫使我再次链接 UIKit/CoreGraphics。
关于ios - 应用程序无需框架即可编译和工作,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/19684927/
|