我需要创建一个compiled分发给第三方的框架。
我在用cocoa-pods
处理my依赖关系。
为了实现这一目标,创建动态链接框架似乎是最好的选择,但我不确定并且愿意接受建议。
我采取的步骤是:
- 我创建了一个包装项目来包含框架目标
- 在包装器项目中,我添加了一个新目标“Cocoa touch Framework”-“MyFramework”
- 所有相关代码都添加到目标中
- 根据生成的注释将导入语句添加到框架的 .h 文件中 // 在此标头中,您应该使用 #import 等语句导入框架的所有公共标头
- 创建了一个 podfile - “pod init”
- 添加了框架对 podfile 的依赖
podfile 看起来像:
# Uncomment this line to define a global platform for your project
# platform :ios, '6.0'
target 'Wrapper' do
end
target 'InnerFramework' do
platform :ios, '7.0'
pod "AFNetworking", "~> 2.0"
end
我需要使用“InnerFramework
“ 目标。
这就是我陷入困境的地方 -
该框架需要包含所有 pod 依赖项,并且能够在模拟器和实际设备上运行(从客户角度来看)-
该框架还需要符合应用商店提交规则,即arm 64位等。
最终用户无法访问原始源代码 - 所以我不能指望它们重新编译。
最终用户也可能正在使用AFNetworking
,并且它可能是不同的版本,即“1.0”
当我尝试将框架集成到测试项目时,我遇到了运行时异常以及编译时错误(取决于我在构建规则中设置的标志)。
我尝试将框架复制到测试项目中
然后在“构建阶段”中添加“复制文件”并添加“内部框架”以及“副本上的代码签名”旁边的复选框
我收到错误“无法构建模块‘InnerFramework’”
如果我将框架头导入到测试项目代码中
如果我不导入框架头,我会遇到运行时崩溃