【发布时间】:2014-01-28 20:03:52
【问题描述】:
我有一个项目,我需要从一个基本应用程序中构建一些应用程序。 对于“子应用程序”,它会更改应用程序的 API 凭据、字体、大小、颜色和一些功能。
所以我更改了我的应用程序,以便我可以轻松地添加功能、更改颜色……通过更改简单的字符串常量来更快地构建新应用程序。
我认为最好的解决方案是向此 XCode 项目添加多个目标,并使用条件编译器标志设置应用程序的各个设置
#ifdef AppTarget1
qr_reader = YES;
#endif
但问题是,将来会有多个版本的框架可用。因此,当基于旧框架更新应用程序时,我们总是必须进行调整以使用框架的新版本(如果有),并且我们无法控制框架版本等。
一个目标也是让我们的开发人员使用简单的 Podfile 轻松构建新的应用程序。
所以下一个想法是创建一个框架项目,然后将其包含在我们的主应用程序中的 CocoaPods 中。我按照本教程进行操作:http://chariotsolutions.com/blog/post/using-cocoapods-to-manage-private-libraries/
在我包含框架的 MainApp 中,MainApp-AppDelegate 类是 Framework-AppDelegate 类的子类。
@interface MainApp_AppDelegate : FrameworkAppDelegate
我在 MainApp_AppDelegate 中设置我覆盖的所有基于应用程序的设置的方法。
@implementation MainApp_AppDelegate
-(void)initSettings {
qr_reader = YES;
}
@end
它就像一种魅力,但我对图像有一个问题。 AppFramework 包含 Image training.png 和 image y.png。
在主应用程序 xyz 中,我决定 Image training.png 看起来不适合此应用程序,所以我只想更改它(y.png 我想要包含在框架中的版本)。我将 x.png 放入 Main App Ressources 文件夹,但在编译并运行后,我看到了 AppFramework 项目中包含的图像。
是否有任何方法可以改变这种行为或更好的方法来创建框架?
【问题讨论】:
-
您是如何访问应用中的图像的?
-
与:
[UIImage imageNamed:@"training.jpg"]
标签: objective-c xcode frameworks