bug & 问题集

bug & 问题集

多线程引发的安全问题

当有多条线程同时操作一个数据的时候, 会引发数据安全的问题
    同一时间(CPU 上如 A 比较块一点), A读取了数据 data, 迟一点, B 也读取了, 然后 A 改动后写回去, 迟一点, B 也改动了写回去, 最终只有 B 操作的结果有效, A 就白操作了, 数据就不对了

方法: 给数据加锁, 当 A 读取时, 先加一把锁, 再读取, 加锁的数据同一时间只能有一个线程读取, 只有线程对数据解锁后, 其他的线程才能操作读取这个数据. 这就相当于是串行了, 但是并行会有问题, 没办法

买票的例子 :
    多条线程同时操作同一个方法, 操作同一个数据, 没加锁, 在 CPU 调度的时候修改同一个数据会以最后一个结果为准, 显示出来就是几个结果都是一样的

    在 OC 中锁是锁代码, 在同一时间只能有一个线程执行某段代码,  代码中有执行操作数据, 所以同一时间只有一个线程操作数据        给代码加锁, 只能是用同一把锁, 这样在其他线程访问的时候才能知道这把锁有没有上锁, 如果没词都新建锁, 没次都是不上锁.
        加锁:
            NSLock tryLock   |  Lock    -------   太繁琐, 不建议
            @synchronized(锁对象) {   需要上锁的代码   }    ------   任何一个对象都可以是锁对象, 而一般本控制器就只有一个, 所以一般用 self 就好
            设置优先级: 优先级高的会比较大概率被 CPU 调度

        加锁的优点: 能有效防止多线程抢占资源造成的数据安全问题
                缺点: 需要消耗大量的 CPU 资源
                            上锁需要记录状态, , 其他等待的线程也需要消耗资源
                    多条线程抢夺同一资源时才要加锁, 不要乱加

    线程同步: 多条线程按顺序的执行任务
        线程同步方案: 加锁

创建了一个控件,就是看不见

1.当前控件没有添加到父控件中
2.当前控件的hidden = YES
3.当前控件的alpha \<= 0.01
4.没有设置尺寸(frame.size、bounds.size)
5.位置不对(当前控件显示到窗口以外的区域)
6.背景色是clearColor
7.当前控件被其他可见的控件挡住了
8.当前控件是个显示图片的控件(没有设置图片\图片不存在,比如UIImageView)
9.当前控件是个显示文字的控件(没有设置文字\文字颜色跟后面的背景色一样,比如UILabel、UIButton)
10.检查父控件的前9种情况

一个控件能看见,但是点击后没有任何反应:
1.当前控件的userInteractionEnabled = NO
2.当前控件的enabled = NO
3.当前控件不在父控件的边框范围内
4.当前控件被一个背景色是clearColor的控件挡住了
5.检查父控件的前4种情况
6.。。。。。。

文本输入框没有在主窗口上:文本输入框的文字无法输入

warning Note: 注意!!!注意!!!!, 在设置 center 之前!!需要先设置好 size!! 不然 center 没有参照, 会设定为原点!!!

loadMoreData 好像有点问题………使用了不可变数组的方法, 返回了不可变数组实例, 实际上已经不是可变数组了, 报错找不到方法

bug: 登录时弹窗不退出, 在加载页面的时候有加载两次….准备:运行程序, 跟踪断点

解决: 在认证成功时hide
原因: 点击登录后还会加载某个网页, 加载授权页面的默认页

bug: 获取用户名设置后会显示了名字, 但是按钮的大小没有及时改变, 要重新打开才行

暂时解决: 在获取名字的时候不直接设置 titleView, 而是重新调用 configNav 方法

bug: 请求失败: Error Domain=com.alamofire.error.serialization.response Code=-1011 “Request failed: method not allowed (405)” — 请求方式错误, 应该是 POsT

bug: 请求成功后获取用户信息失败: 原因: 读取保存的用户信息时获取到 expire_end = nil; —在归档时只设置了通过字典保存时才计算 end 的值

解决: 重写 in 的 set 方法, 在设置 in 的时候就计算并设置好 end

bug: 在重新打开应用后表情键盘添加到最近不能判断出原来已经有了,

---- 添加的时候判断手否存在时是靠传入对象的-isEqual 方法, 逐个传入自己数组中的每个元素进行内存地址判断,一样的就返回 yes, 但是重新打开后是不一样的地址.
重写-(BOOL)isequal:方法, 其中判断改为判断 png 或者 code

bug: 在没有键盘时点击表情按钮键盘出来, 再拖拽文本框键盘下去,但是 toolBar 没有跟着下去

--- 在按钮点击那一刻 isChanging = yes -> 退出第一相应者 -> 因为还没有键盘不会发 hide 通知 -> changing=No 不能调用, -> 代码过不到收回 toolbar 那里,
    ---- 应该把 changing = NO 卸载退出第一响应者后, 不管能不能收起键盘, 操作完成后都回复 changing 状态

小问题, 实时刷新的话, popView 还在显示本来 emotionView 时那个就跳到前面去了, 应该等 popView 消失时在刷新

bug: 当收到的 emoji 中有不能识别的 emoji 时, 同时还带有中文紧贴着,如😍✌🏻️✨在 xcode 中和在这里显示不了那个未识别的字符,隐藏了, 调用 boude…计算 rect 时,会报错访问坏内存. 和中文隔空格,或在未识别的 emoji 前或后隔空格,可以正确通过, 本身打印没问题,主要是调用方法上有问题

估计是在 xcode 的编码中的设置问题. 或者是NSString 在转码的时侯和调用 bounds…的时候有点问题

小问题: 长按最近表情, 会有隐藏的表情弹出来: —- 长按后的判断条件加一个非隐藏才做反应

bug: url 的匹配不正确, 当 url 后面跟着字词之后不会隔开, 会被误视为 URL 的一部分— 找另一个正则来替代

会默认拒绝自认证的链接, 导致微博项目不能访问授权页面, 在info.plist中加入:

NSAppTransportSecurity


NSAllowsArbitraryLoads


或者想添加例外或者更多连接网络方面: http://stackoverflow.com/questions/31216758/how-can-i-add-nsapptransportsecurity-to-my-info-plist-file/31629980#31629980

bug: 排序查询错误: desc asc排序要在查完表后首先做, 然后才是where来筛选

bug: CUICatalog: Invalid asset name supplied: (null), or invalid scale factor: 2.000000 —– This one appears when someone is trying to put nil eventually in [UIImage imageNamed:] 给UIImage imageNamed:nil]传nil的话就会这样….要判断一下

bug: 当transform的时候, 有时候直接make(a,b,c,d)不一定好使, 在相同参数的情况下, 分步来做的结果不一样,

    showView.transform = CGAffineTransformMake(scale, 0, 0, scale, -kRightMenuW*scale, 0);
    上面这句就和下面的分步结果不一样
CGAffineTransform scaleForm = CGAffineTransformMakeScale(scale, scale);
// 平移
CGAffineTransform translateForm = CGAffineTransformTranslate(scaleForm, -transX / scale, 0);

showView.transform = translateForm;

bug: 在自定义view的时候, - (void)layoutSubviews中设置self.frame中的属性, 会死循环….YCRightMenuMidView的时候, 其他的倒是不会, 应该用了enumerateObjectsUsingBlock:^(YCRightMenuMidViewRow row, NSUInteger idx, BOOL stop) 的原因, 改成for循环问题解决

发现: 当操作到子控件时, 会调用到自身的laypoutSubViews方法, 如果在reloadData里没有操作子控件, 要手动调用, 不然reloaddata算出各frame后, 没有判断子控件的 位置来加载, 也是没有反应的.

bug: -[NSArrayI removeFromSuperview]: unrecognized selector sent to instance 0x10a50f150’

    //  makeObjectsPerformSelector:@selector(removeFromSuperview) 让数组里的对象执行方法
//  performSelector: 自己执行方法

bug: cell 不能按照 xib 的尺寸显示: 在 collectionView 的 cell 的大小设置处要设置, 不然会按照这里的在拿到 cell 的时候系统自动会设置一次

bug: //- (void)collectionView:(UICollectionView )collectionViewdidEndDisplayingCell:(UICollectionViewCell )cell forItemAtIndexPath:(NSIndexPath *)indexPath 不要在这里监听, 当滚动时有可能会左右摆动, 造成数据不准, 重复, 形成黑屏

无限滚动

* 和之前的方法的无限滚动的思路差不多
* 都是在滚到哪张时, 将中间那张无动画的显示, 让用户发现不了
* 一样是监听很多东西, 可以拿之前的来看看, 对比来结合优化

bug: 在跳转到下一组时, 会瞬间五动画到第一张: 因为在跳转后动画还没执行完成, 就又执行了五动画到第一张.应该是在自动轮播那里还未跳转到下一页时, 就先五动画的跳转到当前页, 以保不会越界, 总是在中间组

升级 xcode7.2后问题: 程序运行上下有黑边:选中target——>general——>app icons and launch images——>Launch Screen File——>选择一个 storyboard file文件,编译运行即可,打包后,黑边问题不再出现!或者选一个 launchimage 到对应的地方

做项目遇到的问题:

*  在点击评论或者什么, 有时候需要登录才能评论的, 先 modal 登录控制器, 成功后应该在后面想之前的控制器发送消息, 让之前的控制器偷偷的五动画 push 一个评论控制器, 再把登录控制器 dismiss, 这样就能 dismiss 后就可以输入评论, 如果登录了就直接 push 评论控制器
*  在导航栏下面有选择条可以点击切换不同控制器时, 其实是想 tabbar 一样点击时把控制器.view 添加到主页显示出来, 可以滚动, 说明几个控制器.view是连在一起放到 scrollView 或者collectionView 上的, 点击不同的滚动条标签就切换到对应的 view

常见问题总结

  • 以上… SVN 和 Git很像, 容易转换, Git好像更好更强大,
  • 注意: 不要改.svn 里的内容, 不要删, 里面记录着版本信息, 改动的话可能就要重新 checkout 仓库了.

    • 想要在自己电脑上 push 项目还需要一些设置, 这个在一开始就要配置了!不然连 clone 都不行!!!!!!!!!!!!!!!!!!!!!
      -> git 远程是用 ssh 连接的, 需要把自己电脑上的 ssh keyes 添加到 github 的设置上, 表示只有这个 ssh keyes 所有者才能 push 代码, 只有配置了 key 在 github 上的电脑才能传东西, 以后参与开发的组员也是需要配置 key 到这个项目的 github 上
      -> 获取 sshkey: 在电脑上用终端在~/.ssh 里创建公钥私钥对,
      ->命令: ssh-keygen -t rsa -C “你的邮箱地址” -> 然后一直敲回车 ->然后会在~/.ssh 目录下生成 ssh key 密钥对
      -> id_rsa : 私钥, 不可泄露
      -> id_rsa.pub : 公钥, 可以公开(将这个文件的内容粘贴到 Github 上)
      -> 利用 cat 可以查看文件内容
      -> 将pub 公钥粘贴到 gihub 上的 key 框中, add key.
  • bug: 注意变量名不要写的和类名一样!!!!!!!!!注意!!!, 要先设大小! 再设位置!, 不然会有意想不到的情况, 先设位置再设大小会根据 frame.y 又缩放回去….
  • bug: var btns: Array? = UIButton, 数组的可选类型
  • bug: fatalError(“init(coder:) has not been implemented”)因为这个方法是必须要求实现, 当不需要这个方法时, 可以将这个方法声明为便利构造方法, 调用 self.init 或者其他指定构造方法,

#技巧: 需要只设置一次但是又只能在重复调用的方法中设置时, 用
struct TokenContainer {
static var token : dispatch_once_t = 0
}

dispatch_once(&TokenContainer.token)

在 OC 中会自己设置一个值, Swift 中没有, 所以要自己加锁

在 Swift 中用//MARK: - 代替 OC 的#pragma mark- Xcode now supports //MARK:, //TODO: and //FIXME landmarks to annotate your code and lists them in the jump bar

  • bug: 有时候旧文件改动了, 连接出静态库可能有些头文件也要暴露出来, 使用方法也变了!!看看作者文档或主页!!卡了半天!!!, 生成静态库没问题!
    #在使用静态库时应该也设定 Building 参数 OtherLinker -ObjC

  • bug: 有时候等半天没自动补全, 以为是方法错了, 其实是 xcode 的问题
    -[MJRefreshHeader setMj_h:]: unrecognized selector sent to instance 0x79f1aee0
    Terminating app due to uncaught exception ‘NSInvalidArgumentException’, reason: ‘-[MJRefreshHeader setMj_h:]: unrecognized selector sent to instance 0x79f1aee0’

    设备-->分配数据空间,选择一个固定空间,比如E:\\virtualboxshare
    

在虚拟机里

##更新: xcode7.2已经自带这个 framework 模板

  • bug: Undefined symbols for architecture x86_64:
    “_OBJC_CLASS_$_MJRefreshBackNormalFooter”, referenced from:
    objc-class-ref in ViewController.o
    
    “_OBJC_CLASS_$_MJRefreshNormalHeader”, referenced from:
    objc-class-ref in ViewController.o
    
    ld: symbol(s) not found for architecture x86_64
    clang: error: linker command failed with exit code 1 (use -v to see invocation)
    ——–搞错了, 将真机的文件拉进去了….
    ——–其实, 步奏都没错, 只是在 xcode7中要把静态库链接到 embed link 没有做….
    #——–其实, 在 Xcode7.2后做的挺完善, 步奏没那么麻烦了, 也自动做了很多设置, 记得最后要在 embed 链接 framework
  • bug: reason: ‘Delegate must respond to locationManager:didFailWithError:’–必须实现设个方法

##注意: iOS9已经可以设置 detailView, 可以显示更多东西

  • bug: detailCalloutAccessoryView添加本来没有宽高的东西的时候什么都不显示, — 在使用这个特性时需要添加宽高的限制, 不然显示不出来
    [v addConstraint:[NSLayoutConstraint constraintWithItem:v attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1 constant:100]];
    [v addConstraint:[NSLayoutConstraint constraintWithItem:v attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1 constant:200]];
    ###对于Swift:

    • let widthConstraint = NSLayoutConstraint(item: myView, attribute: .Width, relatedBy: .Equal, toItem: nil, attribute: .NotAnAttribute, multiplier: 1, constant: 40)
      myView.addConstraint(widthConstraint)

      let heightConstraint = NSLayoutConstraint(item: myView, attribute: .Height, relatedBy: .Equal, toItem: nil, attribute: .NotAnAttribute, multiplier: 1, constant: 20)
      myView.addConstraint(heightConstraint)

  • bug: 画线出不来, —— 不能用 fillColor!!!! 因为这个线不是闭合的图形!!!!!
    CGPathRef 是非闭合的图形的话, 用 fill 来上色会失效, 因为逻辑上没有可以填充的一块区域

  • bug(音乐后台播放, 锁屏显示界面): 真机也显示不了, 而且后台也不能播放 —- iOS9更新后, 或者是 xcode 的更新, 需要在 tagets -> capabilities 下设置interApp Audio 打开, 还有backgroundModes勾选相应的, 远程控制事件也需要配置 info 了现在!!!http://i.stack.imgur.com/GRx6h.png

bug(访问 http 出错): 用xcode7之后, 最低支持版本 iOS8, 会默认拒绝自认证的链接, 导致微博项目不能访问授权页面, 在info.plist中加入:

NSAppTransportSecurity


NSAllowsArbitraryLoads


或者想添加例外或者更多连接网络方面: http://stackoverflow.com/questions/31216758/how-can-i-add-nsapptransportsecurity-to-my-info-plist-file/31629980#31629980

  • bug: 监听 KVO 监听不到回调, —- 有些属性不能使用 KVO, 要设置对了属性才会回调方法
  • bug: 控件设置不起作用, label 不显示字, 进度条不动 —- 设置 UI 控件的代码不是在主线程执行, 拿不到主线程的 UI 控件来设置
  • bug: 速度显示不出来, —- 速度本来设置是 NSUinteger, 需要转换为 double 再进行计算, 不然整数计算最后是0

  • bug: 控件显示不出来: —- 设置的 frame = 父控件的 frame, xy 比较大, 就在控件中看不见了, 应该设置 bounds

GameKit

bug: 一方点击连接后, 另一方没有反应, 还是在列表状态么没有弹出是否接收的提示

bug: 点击接受后, 没有任何反应了, connecting 一下后就连接失败

CoreBluetooth

  • bug(centralManager 创建后没有反应): 创建后会自动去发现周围设备, 但是不能调用代理方法—– 创建时没有设置代理

##注意: 凡是看到copy / new / create / retain / 的东西, 又没有专程O OC 来进行 ARC 管理的, 都要在用完后 release, 用: CFRelease(xxx)

#推送通知:

##注意: 在 iOS8之后,需要应用注册用户通知设置, 而在 iOS10过期, 使用UNNotificationRequest 代替

  • bug: 在前台时, 通知发出应用接收到时, 也会跳转到详情页 —- 通知不管怎么样都会发出, 而且没关闭应用的话会调用 APP 代理接收到通知的方法, 这里会直接条过去, 应该加个判断,application.applicationState, 从后台进前台的话调用这个方法时是非激活的, 所以当在激活状态时就直接 return, 不做任何事
  • bug: 在 xib 或 storybord 里拖线的时候, 加载对象的时候选最前或最后的时候, 出错, 就是拿到的对象错了, 查看下是不是 xib / storyboard 文件里不止一个控件, 搞清楚自己要的在第几位

2016年12月18日

在用 pod 安装 baiduMapKitSDK 的时候, 出现失败提示:

1
2
3
4
5
6
7
8
[!] Error installing BaiduMapKit
[!] /usr/bin/git clone https://github.com/BaiduLBS/BaiduMapKit.git /var/folders/qp/zd_ttf394yxbkkb1s9tqvgth0000gn/T/d20161218-16747-zk3x4o --template= --single-branch --depth 1 --branch 3.1.0

Cloning into '/var/folders/qp/zd_ttf394yxbkkb1s9tqvgth0000gn/T/d20161218-16747-zk3x4o'...
error: RPC failed; curl 18 transfer closed with outstanding read data remaining
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed

解决搜索

  1. 参考overStack
  2. 里面讲到重新生成 SSHKey, 但是我这里不是 clone 自己的项目, 应该和这个没关系…
  3. 又提到应该increment buffer size: ‘git config –global http.postBuffer 524288000’, 但这个我也做过了, 通过 git config -l 查询是设置过的
  4. 有回答提示在 git 命令前添加这段指令:GIT_TRACE=1 GIT_CURL_VERBOSE=1, 可以查看详细出错内容, 但是…我是通过 pod, pod 调用的 git, 我也没办法…..
    5.

有可能是代理的问题, 等下要去掉代理看看

没有去掉代理, 在改动了 podfile 后添加了指定的版本, 然后到了公司发现好了….可能是网络的问题

bug: 在 pod install 的时候, 会又 warning 出来, 提示添加Use the $(inherited) flag, or - Remove the build settings from the target.

产生此警告的原因是项目 Target 中的一些设置,CocoaPods 也做了默认的设置,如果两个设置结果不一致,就会造成问题。
我想要使用 CocoaPods 中的设置,分别在我的项目中定义PODS_ROOT 和 Other Linker Flags的地方,把他们的值用$(inherited)替换掉,进入终端,执行
pod update

我个人更喜欢一种简单粗暴的方法:
点击项目文件 project.xcodeproj,右键显示包内容,用文本编辑器打开project.pbxproj,删除OTHER_LDFLAGS的地方,保存,pod update,警告没了。。。。

bug: ld: library not found for -lssl

clang: error: linker command failed with exit code 1 (use -v to see invocation)
在按照要求把导入百度 MapSDK 的时候出编译出现了这个问题….

bug: /usr/local/bin/pod:22:in <main>': undefined methodactivate_bin_path’ for Gem:Module (NoMethodError)

from /Users/taketrace/.rvm/gems/ruby-2.3.0@global/bin/ruby_executable_hooks:15:in `eval'
from /Users/taketrace/.rvm/gems/ruby-2.3.0@global/bin/ruby_executable_hooks:15:in `<main>'

当 pod install 的时候出现这个,

看看是不是在没有装 pod 的 Ruby 版本下执行的命令, 不同的版本安装的东西是分开用的

注意:

现在GestureRecongnizer 不能同时添加给多个 View, iOS9开始呗严格禁止….

bug: 在自动布局中, 约束过多的情况下, 提示约束多余, 有些可能是不想要的

fix: 可能会在loadxib的时候设置frame时View的bounds还是空的, 所以这时候在load的时候不用设置其frame

bug: iPhone7运行项目的时候, View的宽度不够,

加载时按照xib的尺寸默认设置了, 在加载的时候在View中用layoutSubviews里这只ContentView.frame = self.bounds即可

lack 有些控件只是大概的完成, 比较草草 , 完成度不高

应该像完成一个第三方库一样, 做到到时候就可以用

bug: 在传递的参数中需要有多值传递时, key相同的情况, 在Java中哟multiple key可以用相同的key, 在iOS中没有发现, 试着将相同的key-value拼接到一个key上时 而使用第三方网络库时, 在底层会将value中的特殊字符(=, &, /)进行URLencode编码

导致传输的参数不正确
solve: 将multiple key使用数组传递, 但是会转义成key[]=value&key[]=value的情况, 这应该是标准的方式, 但是在Server端是用Spring的情况下, 他的处理不会处理[], solve: 修改底层的转义encode设置, 去掉[]的加入.
solve2: 在传递时, 将不同的value用逗号分割, 给同一个key, 即key=value1,value2,value3. 这样在Spring的服务端可以处理, 不过是Spring的情况下, 在其他的框架情况下未必能这么样处理

bug: 使用DropMenu时, 那个库总之感觉写的不好, 逻辑顺序不对, 在修改时也许漏了改什么地方或者是什么的, 导致在来回切换button时出现字啊库中调用了数据源方法索取NumberOfItemsIInRow, 本来没有, 导致数组越界

solve: 在必要地方判断是否有customView, 有旧不做操作

safe area layout guide before ios 9.0

在 xib 中 inspector 第一个最下面, 将use safe Area layout guides 取消打勾
但是这样在新系统中也不能使用这个特性了, 目前还没看到什么问题.

或者说将 build for xxx 改为 9.0 以上

Data base64 转化

Data(base64Encoded: <#T##String#>) 中, 有时候我们将需要的 String 转成 data 通过 API 传输, 但是通过这个方法, 因为不知道他是用了什么方法来编码的, 当服务器解码时, 可能会有不一样的结果

就算是用同一个方法, 传入不同的 base64编码的字符串时, 也不一定有相同的结果, 比如比较普通的依据话, 可以正常互转, 但是比如一些人脸识别数据转成 base64的 String 的时候, 就转不回来了. 到服务器后就是一个乱码. 可以说是很坑了.

所以要是有相关的base64String 需要转 data 的话, 建议还是使用"xxxx".data(using: .utf8, allowLossyConversion: true)的方式

app 启动页换图没效果

启动图应该是有缓存的.

socket

The given socketQueue parameter must not be a concurrent queue.

UIPickerView 显示图片高度不对, 不能按照预期来显示图片

滚不到对应的位置,

目前按照网上的说法是, 一开始没有数据的时候, tableview 会自己缓存了一个高度, 在有数据的时候, 从 rowsize 中拿到的仍然是之前缓存的.
从高度一直是44可以看出, 大概就是这个原因了

先绕过一下这个东西把, 把我设置的图片也弄成44的高度, 让他看起来没什么问题, 就是小了点, 但是作为一个 inputview, 这个问题也不是很大

pod search not working!

pod 搜索无缘无故突然出错

引导到的 issue 能解决问题
:
rm -rf ~/Library/Caches/CocoaPods
清除缓存….

iOS应用运行时,在设置中更改权限,应用被重启。

原因:更改当前app使用的权限,系统会发送:Terminated due to signal 9,然后强制重启app。

获取崩溃日志

Mac : ~/Library/Logs/CrashReporter/MobileDevice/<DEVICE_NAME>

iOS12, xcode10 集成阿里百川错误

报错: symbol(s) not found for architecture armv7

xcode 10 已经没有libc++.6.0.9.std了, 取而代之的是libc++.std, 但是除了这个外, 集成文档里说的库都已经 link 过去了, 重新从网上找到一个6.0.9的放进去后, 还是不行, 添加 Otherlink flag 后还是不行, 妹的. Google 出来, 试着加了 CoreMotion.framework, 还是 libresolv.tbd, 才能编译成功, 这文档…还特么2年前的了. 没有更新过,….心累…
github上有人已经放出了对应的库, 按照操作就可以了

最后, 经过逐一测试, 剩余需要添加的是:

  1. CoreMotion.framework
  2. libresolv.tbd}
  3. libc++.6.0.9.std
  4. Other Link Flag 添加 -l"c++" 如果已经有其他库已经声明的话就不用管了.

有一个不对, 都不行… 诶..