• 记录了群里2016-02-15至2016-02-21讨论的一些问题,如有错误还望告知。
1. 电脑上的证书提示:“此证书的签发者无效”

此证书的签发者无效

  • 问题描述:登录开发者账号,发现账号证书依然可用,只是电脑上的显示“此证书的签发者无效”,而且发布也会出错。
  • 问题原因:Apple World Wide Developer Relations Certificate Authority的过期时间是2016年2月14日,因此签发者签发的证书都过期了。
  • 问题解决:
    方法1:在钥匙串中删除过期证书,重新下载证书安装。已经有人写了详细的教程,这里就不在赘述了,详见解决办法
    方法2:直接在过期的证书上右键->显示简介->信任->使用此证书时,设置为“始终信任”。但这种方法可能有未知风险,虽然能快速解决眼前的问题,所以请慎用。
2. 百度云推送旧版本SDK的应用突然收不到推送
  • 问题描述:使用百度云推送旧版本SDK的应用突然收不到推送了 安卓端能收到 升级新版本后能收到推送 但服务端和安卓端也需要跟着升级 服务端不是很乐意啊 请问有人遇到这种情况吗 不升级版本有什么好的解决办法吗?都上线半年了 客户说收到推送就崩溃。
  • 问题原因:使用jsonkit的原因,在之前兼容64位操作系统时jsonkit 出问题,这次ios9更新又中招了,更新xcode7后原来的jsonkit崩溃,崩溃位置为:
1
2
[JKSerializer serializeObject:options:encodeOption:block:delegate:selector:error:]
void *keyObjectISA = *((void **)keys[idx]);
  • 问题解决:替换jsonkit的 JSONKit.m文件就好了 。
    3. ipa包安装到手机上后不显示网络数据
  • 问题描述:ipa包安装到9.2.1版本的手机上不显示网络请求数据,但是模拟器和其他版本的真机都正常,而且用xcode真机调试9.2.1也没问题,数据请求用的是ASI。
  • 问题原因:是asi网络通信的问题
  • 问题解决:如果工程是ARC的 第三方文件编译选项加上-fno-objc-arc -O0详见:使用asi框架在xcode下正常运行,但是打包时却不能进行网络访问
    PS:由于asi框架已经停止维护了,随着iOS技术的发展会有越来越多的坑,还是尽早放弃使用吧。
4. xcode中.a文件不能上传到SVN
  • 问题描述:用的Versions客户端,上传代码时无法上传.a文件。
  • 问题原因:Xcode自带的svn和Versions以及一些其它工具都默认ignore”.a”文件。
  • 问题解决:
    方法1:使用命令行添加;
    方法2:在Versions中手动添加文件。具体方法参考文章Mac下Versions的 svn无法上传 .a 文件的问题
    方法3:其它群友反应Versions并不是很好用,可以换成CornerstoneforMac(据说是mac上最佳的SVN管理工具)。然后进行如图配置,就可以上传.a文件了
    CornerstoneforMac配置
5. 怎么用gpuImage 实现美白、淡雅、怀旧、黑白、彩铅、胶片等怀旧效果
  • 群主回答:如果没有现成的shader文件,要么用quartz composer来调,要么让美工修图,大致猜测美颜之类的滤镜是怎么改rgb的,然后转成相应的shader算法。
6. 怎么创建动态链接库?
7. 如何获取iphone设备的颜色(比如土豪金,玫瑰金,天空灰等)
  • 可以用此文章获取iOS设备的颜色中的办法获取, 但这种方法利用的是iOS私有方法,用这种方法开发的应用不能提交到appstore;而我们平时见到的QQ空间中显示iphone6土豪金的显示是黄钻用户自定义设置的,并非是通过代码获取的。
8. gcc写法有什么优点

gcc写法形式如下:
gcc

9. 为什么Xcode不能像eclipse一样又一个@warning 这样的就取消警告了
10. 怎样实现tableview 首行左上角和右上角以及末行左下角和右下角圆角

圆角cell
群里大概给出三种解决办法:

  • 图片:做三种图片,分别对应首行,中间行和末行,讲三种图片设为对应cell的背景图。
  • 通过UIBezierPath对象设置带圆角的作图区域:
1
[[UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:8.0] addClip];
11. switch-case 中定义NSDictionary报错

switch-case错误

  • 这个是初学者特别容易犯的错误,因为在oc中使用switch-case的时候无法使用声明语句,只能使用调用函数的语句,所以只需要加一个 { } 将声明的部分包含即可。
12. xcode突然报错:could not build module ‘uikit’

could not build module 'uikit'

  • 尽管网上有很多解决这个错误的方法比如Could not build module UIKit,但是都无法解决群友的这个问题,后来他自己发现是查看UIScrollView.h时,不小心做了改动,于是让同事发了一个相同的系统文件UIScrollView.h覆盖上去就好了。怪不得很多时候出现这个问题重装xcode就好了,原来是动了里边的文件。
13. 宏和常量用法
  • 问题描述:以下这两种方法有什么区别?oc中去把控件的宽度或高度定义成宏还是用extern?

    1
    2
    #define RKEnumerationOptionsErrorKey @"RKLICURegexEnumerationOptionsErrorKey"
    extern NSString * const RKLICURegexEnumerationOptionsErrorKey;
  • 问题解决:
    第一种是宏,第二种是常量;oc中常把控件的宽度或高度定义成宏。
    了解更多关于宏和常量的可以参考这篇文章:iOS 宏(define)与常量(const)的正确使用;

14. 关于299的企业版证书发布的app能不能上appstore的问题
  • 这个问题的答案本来觉得是尽人皆知的,可是群里总有较真儿的人非说他们公司申请的299的企业证书发布产品到appstore了,非得让人给他摆出苹果官方的证据,其它的论坛说的不算。也罢,贴出来,以后再有这种人直接给他甩链接:苹果企业版证书
    苹果企业版证书
15. 想用collectionview实现卡片效果,如何做到滑动时只有一个item在中间?

UICollectionViewDemo

16. Yep源码
  • 虽然年前Yep开源了,但是很多人反映下载下来无法正常运行,所以有心人在群里分享了一份可以正常运行的,需要的可以去群文件下载,不在群里的可以通过这下载Yep,还有人说最新的yep 在develop分支下的,只要pod成功 用sourcetree clone下来或者直接命令行clone下来就可以运行。所以喜欢踩坑的同学可以试试自己解决,如果只是想运行看效果可以直接看群友的分享。