iOS 接入第三方SDK常遇到的问题 Cannot synthesize weak property in file using manual reference counting

1. 编译报错:Undefined Symbols for architecture x86_64

可能是SDK不能使用模拟器测试,连上真机测试


2.iOS9.0及以上网络连接出错

在info.plist文件中加上

info.plist   Property List格式

或者选中info.plist文件 ->右键 -> OpenAs -> Source Code,添加代码(info.plist的默认打开状态是Property List)

iOS 接入第三方SDK常遇到的问题 Cannot synthesize weak property in file using manual reference counting_第1张图片
info.plist  Source Code格式


3. 常见编译报错 修改Bulide Settings设置

3.1 搜索: architecture

Build Active Architecture Only一项:    debug -> Yes        Release -> No

 Architectures 一项:

Valid Architectures 一项:

3.2 搜索:other link flags

-ObjC

-all_load

-force_load   嵌入cocos2dx中,有时需要使用这个添加静态库路径

3.3 搜索:bitcode

适配iOS6 需要设置Enable bitcode -> No

3.4 .h头文件  .a静态库或者.framework找不到

首先确定项目中是否导入(是否拖入项目)或者是否重复导入这些文件

接着搜索:search path

分别查看Framework Search Paths、Header Search Paths、Liability Search Paths是否添加或者是否正确添加这些文件的路径


4. 某些静态库之间或者静态库与framework之间存在.o文件冲突

注意:有的.a库与其他库中文件完全重合,可以分别解压看看,到底重合了多少文件;

直接移除被包含所有文件的.a库即可(遇到过两次某第三方.a库跟微信分享静态库所有文件冲突的情况)

如果某个或者某几个重合则:

解压某个静态库,删掉冲突的.o文件,再重新打包

4.1 先创建个文件夹备用 :new

4.2 将待解压静态库libWeChatSDK.a存一份放入new

4.3 打开终端

4.3.1 进入new文件夹:     $cd /Users/XXX/Desktop/new

4.3.2 创建arm64文件夹:    $mkdir arm64

4.3.3 $lipo libWeChatSDK.a  -thin arm64  -output arm64/libWeChatSDK-arm64.a

4.3.4 查看libWeChatSDK-arm64.a文件:$ ar -t arm64/libWeChatSDK-arm64.a 

打印包内容:(这一步可以看出某个静态库的所有.o文件)

__.SYMDEF SORTED

WeChatRegister.o

AppCommunicate.o

WXApi.o

WeChatApiUtil.o

WXApiObject.o

AppCommunicateData.o

至此可以重复以上步骤分别查看两个.a库的文件,以便做出对比,找出重合的.o文件

---- 以下便是移除某个.o文件的操作

4.3.5 解压libWeChatSDK-arm64.a到arm64文件夹:$cd arm64 && ar xv libWeChatSDK-arm64.a

打印:

x - __.SYMDEF SORTED

x - WeChatRegister.o

x - AppCommunicate.o

x - WXApi.o

x - WeChatApiUtil.o

x - WXApiObject.o

x - AppCommunicateData.o

4.3.6 移除rm 重复的.o:  $rm AppCommunicateData.o

4.3.7 退出到new并重新打包生成libWeChatSDK-arm64.a:$cd .. && ar rcs libWeChatSDK-arm64.a arm64/*.o

4.3.8 同理armv7、armv7s、x86_64、i386

4.3.9 重新合并新生成的包为libWeChatSDK-new.a(在new文件夹下): $lipo -create libWeChatSDK-armv7.a libWeChatSDK-arm64.a libWeChatSDK-armv7s.a libWeChatSDK-i386.a libWeChatSDK-x86_64.a -output libWeChatSDK-new.a

4.3.10 新生成的libWeChatSDK-new.a可以代替libWeChatSDK.a使用了


5. 直接代码行报错:

 Cannot synthesize weak property in file using manual reference counting

(解决Xcode7.3无法联想引入自定义头文件)

搜索:weak

Weak Reference In Manual Retain Release  ->YES


6.项目中某个文件与SDK中文件重名

修改项目中自定义文件名


7.Admob聚合必须添加的框架

CoreBluetooth.framework当时找了好久

iOS 接入第三方SDK常遇到的问题 Cannot synthesize weak property in file using manual reference counting_第2张图片

8.遇到.bundle重新签名的问题


9.编译出错:libc++abi.dylib: terminating with uncaught exception of type NSException

在TARGETS-Build Settings-Other Linker Flags属性添加-ObjC属性即可

你可能感兴趣的:(iOS 接入第三方SDK常遇到的问题 Cannot synthesize weak property in file using manual reference counting)