美文网首页
iOS蛋疼崩溃之linker command failed wi

iOS蛋疼崩溃之linker command failed wi

作者: 管家頗 | 来源:发表于2016-09-01 15:13 被阅读950次

    造成次崩溃的原因有很多,所以决绝起来十分麻烦,小编用过的方法有:

    1. pod update

    2. 模拟器的问题,不应该选64位的模拟器,选个32位的就可以了!看来自己的问题只能自己解决了,看到别人的方案,自己也得支脑筋!~

    3. 把 Valid Architectures 的值改为 armv7
      过程:
      PROJECT --> Build Settings --> Architectures --> Valid Architectures 他的值本来是 armv7 armv7s (ios6.0下) 把armv7s 去掉即可
      同样的操作
      TARGETS --> Build Settings --> Architectures --> Valid Architectures 做同样的修改

    4. 重新导入第三方库

    5. 由于类名重复造成此种崩溃,找到类名相同的两个类修改其中一个类名

    实例

    1.Debug-iphonesimulator/MBProgressHUD/libMBProgressHUD.a(MBProgressHUD.o)ld: 14 duplicate symbols for architecture x86_64

    1.png

    方法:由于有人在其他地方拖入了这个库,所以我用cocopods导入时造成文件重复,删除其中一个即可

    2. 导入ShareSDK时报错
    Undefined symbols for architecture x86_64:
    "OBJC_CLASS$_QQApiInterface", referenced from:
    objc-class-ref in AppDelegate.o
    "OBJC_CLASS$_TencentOAuth", referenced from:
    objc-class-ref in AppDelegate.o
    "OBJC_CLASS$_WeiboApi", referenced from:
    objc-class-ref in AppDelegate.o
    ld: symbol(s) not found for architecture x86_64
    clang: error: linker command failed with exit code 1 (use -v to see invocation)

    2.png 解决方案:
    Xcode升级到6.1.1 默认让所有App都通过64位编译器编译。原来在Xcode6.0的时候默认的Architectures只有(arm7,armv7s),到6.1.1默认就带上arm64的参数了。
    3.png
    1. 把1.选中Targets—>Build Settings—>Architectures。
      把build active architectures only 改为 NO。
    2. 把最下面的Valid Architectures中的arm64参数删掉就可以了
      或者:
      双击Architectures,选择other,删除
      $(ARCH_STANDARD),然后增加armv7和armv7s(写上:$(ARCHS_STANDARD_32_BIT))。
    3. clean 再build。

    结果设置如下图:


    4.png

    相关文章

      网友评论

          本文标题:iOS蛋疼崩溃之linker command failed wi

          本文链接:https://www.haomeiwen.com/subject/gjocettx.html