编译链接蘑菇街开源iOS SDK(TeamTalk)遇到的问题及解决方法

由于需要测试我们的云加密的加固工具,所以大量测试各种开源项目,其中就包括蘑菇街。但是从github上下载的源代码都有问题,不能直接使用,需要做一些修复处理,整理一下供大家参考.

github地址: https://github.com/meili/TeamTalk


编译环境Xcode 8.2, iOS 10.2

1. 下载

直接git clone或者download也行

git clone https://github.com/mogujie/TeamTalk.git

2. pod install

进入iOS目录,我们看到包含Podfile文件,所以需要先执行"pod install"来安装依赖的三方库

3. 修改签名

把签名修改为能使用的

编译链接蘑菇街开源iOS SDK(TeamTalk)遇到的问题及解决方法_第1张图片

4. 'Fabric/Fabric.h' file not found

然后打开workspace文件,Build出现错误:'Fabric/Fabric.h' file not found

编译链接蘑菇街开源iOS SDK(TeamTalk)遇到的问题及解决方法_第2张图片


查看工程配置,没有Fabric.framework和Crashlytics.framework这两个库

编译链接蘑菇街开源iOS SDK(TeamTalk)遇到的问题及解决方法_第3张图片


Podfile文件里也没有他们的配置

编译链接蘑菇街开源iOS SDK(TeamTalk)遇到的问题及解决方法_第4张图片


所以解决办法就是导入这两个framework,一种是手动导入,下载framework后直接导入工程;另一种是使用Cocoapods来自动导入

这里我们采用第二种方法

编译链接蘑菇街开源iOS SDK(TeamTalk)遇到的问题及解决方法_第5张图片

然后执行"pod install"

编译链接蘑菇街开源iOS SDK(TeamTalk)遇到的问题及解决方法_第6张图片


5. 'objc_unretainedPointer'错误

经过上面的步骤,Build工程,还是出现一些'objc_unretainedPointer'的错误:

'objc_unretainedPointer' is unavailable:use a __bridge cast instead



解决办法:将objc_unretainedPointer(__bridge void *)或者(const void *)替换


6. sh问题

/doc/开源项目/TeamTalk-master/ios/Build/Intermediates/TeamTalk.build/Debug-iphoneos/TeamTalk.build/Script-817CB3AD1B3BC68D0004AFEA.sh: line 2: ./Fabric.framework/run: No such file or directory



解决办法: remove the fabric script from run script

编译链接蘑菇街开源iOS SDK(TeamTalk)遇到的问题及解决方法_第7张图片


至此,终于可以跑起来了,哈哈

你可能感兴趣的:(iOS)