sinaweibosdk / weibo_ios_sdk

新浪微博 IOS SDK
http://weibo.com
Other
1.44k stars 565 forks source link

-[WBMFPRSA getPublicKey]崩溃 #129

Closed summer-wu closed 4 years ago

summer-wu commented 9 years ago

调用registerApp方法就崩溃,然后xcode中断点打在-[WBMFPRSA getPublicKey]。再仔细看发现是SecCertificateCreateWithData处崩溃。 图示

原因:生成的.app 中缺少WeiboSDK.bundle。

更深层原因:我是用cocoapods安装的。以前安装的pod都是只有代码没有resouces,工程的build phases中没有“Copy Pods Resources”这一步。现在在podfile中添加pod "WeiboSDK", :git => "https://github.com/sinaweibosdk/weibo_ios_sdk",再pod install --no-repo-update,不会重新添加“Copy Pods Resources”。所以链接没错误,运行时找不到文件出错。

解决办法:删除Link Binary With Libraries中的libPods-ProjectName.a,重新执行pod install --no-repo-update,这次会添加“Copy Pods Resources” phase。

参考https://guides.cocoapods.org/using/using-cocoapods.html 中What is happening behind the scenes?这一节

也请新浪微博团队在调用文件前用fileExistsAtPath判断一下。

Richard1900 commented 8 years ago

@summer-wu 你好,这个问题你后来又重现了么。首先我们的项目没有使用 pods,所以应该不是这个问题。然后我检查了 Copy Bundle Resource 里,已经有了 WeiboSDK.bundle 。还有一点比较奇怪的是,你遇到的是必现的么?我们看这个 crash 是有一定的概率出现的,且概率比较低。

wushuyu commented 8 years ago

@Richard1900 当时我的现象是必现。你打开.ipa包看看里面有没有WeiboSDK.bundle。我发现xcode在切换分支后生成的包会出问题,需要先clean一次

Richard1900 commented 8 years ago

@wushuyu 好的,谢谢解答,回头我调研一下是否跟 checkout 分支有关