相信大家都有过做自己APP的想法,我把以前踩过的坑记录一下,大家多多少少也可以参考一下,受见识的局限可能会比较浅薄,请大家多多谅解。
首先需要一个自己的开发者账号(因为我没有有国际支付功能的银行卡,所以找淘宝代充的)(如果有账号的可以跳过准备,看下面)
iOS的开发者账号分为3种。
个人账号:每年688RMB,容易申请,在上架App Store后,开发者直接显示申请人姓名,个人使用,每一种Apple产品,均有各类设备各100台测试权限。iPhone、iPad、Mac等。
公司账号:每年688RMB,需要邓白氏编码才能申请,上架App Store的App开发者显示公司,公司账号下,可以添加多个测试子账号,支持Xcode在真机测试,但是子账号没有上传App Store权限。与个人账号权限类似,均有各类设备各100台测试机权限,iPhone、iPad、Mac等。
企业账号: 每年299美元,自行换算因为就这个我没买过。申请相对负责,审核比较严格,与公司账号不同处在于,测试设备无限,可以不将开发的App上架App Store,而仅供内部公司人员使用。
我用的是第一种,个人账号
然后创建应用,填写资料
因为没有服务器(当然会搭服务器的小哥可以跳过),网上有好多免费的API数据接口,大家可以找一下看看有没有需要的,最大的应该就是和了吧,
实在不行的话可以使用抓包工具来寻找自己需要的数据,
用户注册登录(当然会搭服务器的小哥继续可以跳过)大家可以搜一下,有专门的SDK,据我所知有腾讯云和bmob后端云是免费的,我现在用的,
具体数据的增删改查,看文档吧这里就不细讲了
用户第三方登录分享(不需要的可以跳过去)
注册提交资料就行,注意微信提交审核的官网要正规点,不然审核不过,随便搭个好看点的静态页面吧。
集成友盟统计(不需要的可以跳过)
集成友盟统计可以分析流量来源、内容使用、用户属性和行为数据,可以知道用户干了什么
设置用户的属性,这样用户做的事件就可以携带着这些属性,传的样式是字典
自定义事件,数量统计,比如可以统计充值按钮被点击的多少下
@param label 分类标签。不同的标签会分别进行统计,方便同一事件的不同标签的对比,为nil或空字符串时后台会生成和eventId同名的标签. @param accumulation 累加值。为减少网络交互,可以自行对某一事件ID的某一分类标签进行累加,再传入次数作为参数。用过的感觉腾讯bugly界面好看点,友盟方便点直接友盟统计就可以收集到。其实也没啥好说的,腾讯bugly也可以统计,友盟统计也可以收集bug,感觉都差不多。
现状推送的第三方SDK很多,像友盟推送,极光推送,信鸽消息推送等等,个人感觉极光推送是最快的(也有可能是自己的错觉,个人看法)
创建推送证书1.png
创建推送证书2.png
极光推送可以设置标签和别名达到个性化单独推送的效果,比如单独推送某人,或者按地区推送。 具体实现自己看太多了,不细写了,
4.点击推送控制跳转的页面
注意设置角标,不过好像第一次点进角标不会消失,再点才会,好像简书的也是这样(不知道是不是错觉)
做应用需要这样的图标怎么办
做应用的话,需要用到好多图标(作为连画画都不会的人来说,能愁死。当然如果有好的UI朋友的话可以跳过)
图标算是最全的了,基本上搜的都有,
下载的话可以设置格式,颜色,大小
App Icons的尺寸大小(里面有iPhone和iPad的尺寸,可以自己删除不需要的)
启动图片尺寸输出列表: 640x960
苹果内支付(不需要的话可以跳过)
要使用苹果内支付需要给苹果30%的分成,只有超过150刀才会给你打钱,而且具体使用中还有好多坑,等等慢慢吐槽。
需要付费的虚拟物品必须使用苹果内支付(比如直播打赏的道具),当然你也可以隐藏一个用于支付的H5页面(不过被发现了下场会很惨,但是我发现有好多没被发现的,难道是看脸的吗)
具体的过程简书作者说得很清楚了,我就不细说了,但是套句领导的话“我再补充两句”
然后是审核最好详细点,最好有图片,千万不要高估审核人员的智商,不要高估,不要高估(重要的事情说三遍,说多了都是泪啊,有可能在哪购买他都找不到)
如果是企业开发的话一定要和后台说清楚,不要只和苹果服务器校验是否成功,要把例如产品ID,价格都校验一下,而且要把订单标记为已购买(因为苹果服务器订单校验成功是没有时间限制的,如果一个人花一块钱买个东西把数据抓到以后,用这个订单再买别的东西,你只校验成不成功的话会出问题的)大家不要做坏事哦
说实话这可是个体力活(不然不就白叫码农了吗),英语分个美国英国等等,现在连繁体字也分香港和台湾(兄弟们准备好翻译软件了吗)
然后就会多出两个文件来
持久存储是一种非易失性存储,在重启设备时也不会丢失数据。
SQLite,用于存储查询需求较多的数据
CoreData,用于规划应用中的对象
使用基本对象类型定制的个性化缓存方案
比如储存一些用户的信息或者设置的信息
修改直接把key传过去就行会覆盖原来的数据
删除的话把key传过去个“”空也行
那么问题来了 NSUserDefaults只适合存储轻量级的本地数据,一些简单的数据(如NSString类型的),但是如果我们自定义了一个对象,对象保存的是一些信息,这时候就不能直接存储到NSUserDefaults了怎么办
可以将自定义类型转换为NSData类型
应用有时候需要用户单聊,或者群聊,也有可能需要客服聊天,不管怎么说也可以增进用户的黏贴性。
市面上提供IM SDK服务的最大的应该就是了吧(个人感觉),但是自从腾讯把它的IM放出来之后感觉有点变化。
之前说腾讯的信鸽推送用得不太好,但是感觉对并发的处理更好一些,而且功能多(虽然给的demo有点烂),支持创建超级大群(可以超过一万人 上限多少没说)像如果做直播聊天室的话还是挺方便的,而且腾讯云IM有自己的用户管理系统可以帮自己省很多事。
由于Apple严格的审核标准和低效率,iOS应用的发版速度极慢,稍微大型的app发版基本上都在一个月以上,所以代码需要热更新。
JSPatch 是一个 iOS 动态更新框架,只需在项目中引入极小的引擎,就可以使用 JavaScript 调用任何 Objective-C 原生接口,获得脚本语言的优势:为项目动态添加模块,或替换项目原生代码动态修复 bug。
Objective-C是动态语言,具有运行时特性,该特性可通过类名称和方法名的字符串获取该类和该方法,并实例化和调用。
我们可以通过类名/方法名反射得到相应的类和方法,
也可以替换某个类的方法为新的实现,
还可以新注册一个类,为类添加方法。
现在只说一下工程应用的步骤(因为后台不太想管理热补丁,所以整个流程都是客户端完成的)
1.先导入JSPatch SDK到工程里(很小的,只有几个文件)
2.根据JSPatch语法写好热补丁,然后MD5加密上传到七牛,因为要自己管理七牛文件命名 开头一个字母来判断是否是正式环境,后面加上版本号。
3.每次进入应用判断有没有热补丁就行了。。
4.苹果爸爸说以后热更新,热修复不让用了,恭喜热修复不用看(??? ?? ???)
未完待续。。。。。最近在找工作 有时间更新东西了,想到什么写什么吧!
白苹果, 积分 542, 距离下一级还需 958 积分 |
|
|
|
|
青苹果, 积分 157, 距离下一级还需 43 积分 |
|
||