美文网首页
iOS项目问题总结

iOS项目问题总结

作者: 年轻人的心情_爱我所爱 | 来源:发表于2017-11-21 09:31 被阅读45次

    1.Xcode9打包问题
    错误一:


    提示错误
    这个原因是因为我的项目中使用的阿里云的第三方的sdk是模拟器版的,不适合上架使用,只适用于平时的开发,将sdk换成 上架版本的就可以了.
    

    错误二:


    提示错误
    这是因为我的devices  选择的是Universal  ,而不是iPhone,如果你的app需要适配iPad ,那就需要这两张appIcon了,
    有的时候你的当前图标尺寸已经有了,但是打包的依然提示你缺少当前图标,你可以让UI在给你重新切图,不能有透明度和圆角.
    

    2.项目运行提示
    xcode could not write to device

    清理缓存,重启xcode,暂时是有效的.其他情况还未遇到,如遇到,会及时补充.
    

    3.项目中使用了网易云的直播sdk,
    一直提示我

    [__NSCFConstantString MD5]: unrecognized selector sent to instance 0x10177a9

    
    项目中并未使用到MD5,多番查找,发现,Bulid settings 里面的other Linker Flags 忘了设置 -ObjC 或者 -all_load 或者 -force_load,导致编译一直崩溃
    ,但是又无法直接添加  -ObjC 或者 -all_load,因为之前的旧项目引入了很多库,如果直接添加这两个,会造成,重复,
    
    于是,就只针对当前阿里云崩溃的静态库添加了  -force_load,搞定,不崩溃了,具体的原理,我还要细细研究,这底层不理解,真的是容易埋炸弹.
    
    静态库添加

    4.iOS 入伍 的坑
    在iOS 11 之前的版本,如果项目中重复使用了同一个文件名字,会报错

    linker command failed with exit code

    这个问题的原因很多,不过我遇到的最多的是文件重名,但是又不告诉你在哪里,真是头大.
    
    崩溃的是,iOS11 系统上编译,没有任何问题,只有在打包或者在iOS 11 之前的系统上编译才会提示你有问题了.自己挖的坑,自己跳...
    
    

    5.删除数据源刷新界面无效的问题

    需要考虑到线程问题,获取数据源的时候,或者其他原因导致的多线程,删除数据,刷新界面需要回到主线程中操作.
     dispatch_async(dispatch_get_main_queue(), ^{
                [self.tableDataSource removeObjectAtIndex:indexPath.row];//删除数据源
                [self.mainTable deleteRowsAtIndexPaths:@[[NSIndexPath indexPathForRow:indexPath.row inSection:indexPath.section]] withRowAnimation:UITableViewRowAnimationLeft];//删除行
            });
    
    

    6.针对问题3最终做了调整,旧项目导入第三方,或者是其他框架,可能会导致路径不能自动添加
    修改 Build Setting -->Other link -flags 里面可能会有-all_load -force_load ,导致你手动添加的时候资源库之类的还是不能编译到,直接干掉之前的-all_load -force_load 这些,加入 $(inherited) -ObjC即可,会自动加载第三方的所有文件及库

    7.友盟5.2.1升级

    友盟sdk牵扯的东西很多,升级到最新版必须将之前的sdk删除干净.

    如果分享面板的图标不显示,但是文字是正常的,说明 UI里面的"UMSocialSDKResources"文件没有被编译到,需要我们手动将UMSocialSDKResources文件导入到项目中


    分享面板图标不显示 资源导入后

    8.苹果开发者账号 提示 更新内购协议,点击蓝色的 (Aggreements, Tax,and Banking )字,进入到银行,税务协议界面,点击第一栏的"request "按钮,进入到一个新的协议界面,同意即可.


    内购更新协议

    因为工作比较忙,暂时先写这么多,后续补上.

    9.上传APP 打包,一直提示upload success ,但是却不见构建版本,也没有收到苹果发送的问题邮件,最后在 Itunes Connect 活动的所有构建版本中发现之前提交的版本都是红色的叹号,点开查看,提示 "导入此构建版本时出错。"
    网上查了一些资料,说是因为第三方SDK 里面有"info.plist文件造成的",将阿里云sdk里面的一个info.plist文件删除后再次打包上传,果然,构建版本上去了.

    版本提交列表

    10.支付宝导入提示 _rsa_sign_with_private_key_pem in openssl_wapper.o

    支付宝sdk导入错误

    11.支付宝提示 Privatekey isNull

    将签名文件中的代码 @"-----BEGIN PRIVATE KEY-----\n" 改为 @"-----BEGIN RSA PRIVATE KEY-----\n"

    @"\n-----END PRIVATE KEY-----"改为 @"\n-----END RSA PRIVATE KEY-----"

    12.xcode 9下的模拟器截屏上传App Store出错,提示尺寸不对

    12.1.选中模拟器


    选择window

    12.2.去掉Show Device Bezels的勾选

    取消Show Device Bezels

    12.3.选择Zoom 模拟器会变成 这种样式

    截图模拟器

    12.4.command + s 截图就可以了

    13.友盟分享面板显示为英文

    手机--设置--通用--语言与地区--把英文删了就好

    14.项目中如果使用到气泡作为背景,内容多的话容易造成气泡被拉伸,不用着急,xcode帮你解决


    Assets
    设置气泡拉伸

    15.环信推送,推送方因为是admin,但是环信后台没有"admin"这个账号,导致推送的昵称一直是空的,如图


    没有昵称的推送

    解决办法:将"admin"这个作为账号,添加到环信后台,设置你想要的昵称,再次推送,就没问题了


    后台添加账号之后

    16.xcode打包Ad Hoc,一直闪退,可以查看下开发者账号是否有协议需要处理.

    相关文章

      网友评论

          本文标题:iOS项目问题总结

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