我使用有关为iOS开发创建通用二进制框架以分发库的方法.我还想在框架中添加文件,并将它们加载到主程序中(实际上是SSL证书).这与StackOverflow问题有关,主要区别在于我想要包含除XIB之外的其他内容.
如果我们读取与链接帖子相关的线程,似乎是不可能的.但是,提到了以下博客文章 ; 我们可以读到:
"静态框架不是标准框架的完全替代 - 访问框架资源的标准方法,例如
+[NSBundle bundleForClass:]不会返回预期的bundle.通过查询dyld来确定与路径对应的库路径 - 在在静态链接的情况下,这将返回静态库链接到的二进制文件的路径.另外,NSBundle/CFBundle将检查返回地址的前一个堆栈,并使用该返回地址来确定调用代码的dyld二进制路径.这些限制,一些解决方法是可能的,例如-[NSBundle privateFrameworkPath]用于定位嵌入式框架的路径."
我是iOS开发的初学者,我很难使用这样的机制.privateFrameworksPath确实使用返回路径,但我不知道接下来要做什么来找到我想要加载的文件.
它是这样的:
NSBundle * bundle = [NSBundle bundleForClass:[self class]];
NSString * path = [bundle privateFrameworksPath]; // Works, return something like .../Frameworks
NSString * file = [path stringByAppendingPathComponent:@"MyFramework.framework/Versions/A/my-cert.der"];
NSData * trustedCertData = [NSData dataWithContentsOfFile:file]; // Returns nil
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?