Xcode实现Framework联调

一头雾水的时候,真觉得Framework调试就是个坑;待坑填满的时候,原来啊Framework调试就那几步。


1.关于模拟器和真机

Framework编译(当然Build Configuration要选Debug,一般情况下没有做特殊设置,调试情况下都是Debug)的时候可以选择真机或者模拟器 ,如果编译为iOS Device时,在工程build路径(可以在Build Settings里设置)下的Debug-iphoneOS 目录下,复制出来用就只能用在真机上;相反编译为模拟器时,只能用在模拟器上。

如果想让Framework能在真机和模拟器上通用,可以用lipo 命令来合并真机和模拟器分别生成的Framework包里的与之同名无后缀名的文件,具体命令如下:

lipo -create 真机framework文件路径(sample.framework/sample) 模拟器framework文件路径(sample.framework/sample) -output 合并后文件的输出路径(.../sample)

至于上面路径,可以打开finder直接将文件拖进‘终端’的窗口即可。

执行过后可以得到一个sample的文件,将Framework中的文件替换为当前生成后的sample文件,即可在真机与模拟器下运行。


2.关于Framework的调试

首先将Framework的工程整个复制到你的App工程的文件夹下,之后用add Files的方法引入Framework工程文件,这样现在的App工程就会有两个工程target,一个是Framework,一个是App,可以设置Framework的build路径和app的Framework Search路径相同,或者将生成的Framework拷贝到App的Framework Search路径下;将Framework引入工程中,即可进行工程的联调,对Framework进行调试。

注意事项:

1)如果工程在debug模式下,单步执行时乱跳,就是单步执行的位置定位不准,有可能是Framework有改动,但是联调的却不是最新的,此时可以把Framework和App都clean,重新编译;

2)保证Framework工程文件的Build Settings中Gernerate Debug Symbols 的选项为YES ,这样才能保证 framework是可以调试的;

3)调试时,App与Framework的Edit Scheme 中的Build Configuration(debug 和 release选项) 要一致;

4)调试时,如果想从模拟器换成真机要重新导入相应的Framework,clean工程,并重新编译;如果Framework build路径和App的Framework Search路径一致,就只需clean,再重新编译。

你可能感兴趣的:(Xcode实现Framework联调)