1. 编译报错:Undefined Symbols for architecture x86_64
可能是SDK不能使用模拟器测试,连上真机测试
2.iOS9.0及以上网络连接出错
在info.plist文件中加上
或者选中info.plist文件 ->右键 -> OpenAs -> Source Code,添加代码(info.plist的默认打开状态是Property List)
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当时找了好久
8.遇到.bundle重新签名的问题
9.编译出错:libc++abi.dylib: terminating with uncaught exception of type NSException
在TARGETS-Build Settings-Other Linker Flags属性添加-ObjC属性即可