十年iOS开发经验-干货
关于上架
上架失败有很多原因,根据审核反馈修改提交一般都能上,这里就简单讲一下最难的4.3和可能遇到的4.1,4.2,app store中有很多类似App的就会触发,以下是通过4.3的方法可仅供参考
一、自己复制自己的App修改部分界面
1、第一个版本提交4.3,直接放弃新建App重写
建议代码需要换一种方式写(最好换一个程序员写代码)+ UI需要重新设计
2、更新中出现4.3,可以重新打包提交,备注没有做任何修改只是定期修复BUG、发邮件等拉扯一下,可能会通过审核。
3、多个复制修改UI上架的App能用建议不要更新很容易4.3
二、自己抄袭网上的App
需要增加自己的特色的功能,否则不会过,建议更换包名增加新功能,新建app提交。
三、监管严的类型赌博游戏、约会App、纯社交App 基本过不了审核
四、4.1和4.2 如果你的名字、截图、原生代码功能太少
1、名字
比如你的App名字叫抖喑,会被判定为山寨抖音,不要加一些热度高的词会被判定蹭流量
2、截图
截图与App内相差太大,会被判定内容不符被拒
3、H5App
原生功能太少,全是网页会被拒绝上架
五、其他
1、举报和拉黑没有接口,可以做本地
2、有用户上传内容,必须要用户使用条款EULA
3、有订阅必须要新定义协议,建议把EULA复制到app上架中心信息的自定义协议中
4、有登录必须要要退出登录和删除账户,包括游客登录
5、苹果登录隐私邮箱收不到邮件,即使是开发者后台添加发送邮箱白名单
6、审核时广告不能加太多,通过可以放出来
7、
关于代码(太多了想到一点写一点,慢慢更新)
1、一个实例工具类+类目(可运行时增加属性)全局导入后都能方便快捷调用
2、对接接口与难过AFNetworking+请求Model+返回Model(json自动序列化)
3、数据库储存可以用FMDB,CoreModel
4、全局用一个NVC给到window的rootvc,tabbar给到nvc的rootvc
5、设备ID建议用钥匙串,钥匙串不删除不会变,建议做游客登录时使用
6、app更新弹窗提示建议用HSUpdateApp,不会影响审核
7、导航栏建议用GKNavigationBar,全局+VC自定义
8、GIF图片大、建议用SVGA小效果比GIF更好
pod 'SVGAPlayer' # 在 SVGAPlayer 的Svga.pbobjc 中添加 #import <libkern/OSAtomic.h>
9、pod 常用设置(允许模拟器运行、设置最低系统)pod无法运行设置Targets的project format 为Xcode13.0之前版本
post_install do |installer|
# 允许模拟器运行
installer.pods_project.build_configurations.each do |config|
config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64"
end
# 替换DT_TOOLCHAIN_DIR为TOOLCHAIN_DIR
installer.aggregate_targets.each do |target|
target.xcconfigs.each do |variant, xcconfig|
xcconfig_path = target.client_root + target.xcconfig_relative_path(variant)
IO.write(xcconfig_path, IO.read(xcconfig_path).gsub("DT_TOOLCHAIN_DIR", "TOOLCHAIN_DIR"))
end
end
# 设置最低系统为 iOS 13.0
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '13.0'
end
end
end
10、播放器推荐使用IJK和AVPlayer,封装比较好的推荐ZFPlayer
11、视频、音乐、网页缓存推荐KTVHTTPCache
12、通过ID获取Youtube的视频流推荐XCDYouTubeKit-kbexdev
13、banner推荐SDCycleScrollView可自定义Cell
14、联动推荐SwipeTableView
15、弹窗推荐自定义添加在RootVC
16、吐司和HUD推荐当前VC或则当今view上显示,不行影响其他页面
17、推荐基类view controller,统一修改背景和dealloc,返回按钮方法等重复内容
18、状态栏颜色推荐系统默认,会根据背景颜色而改变(比如黑色背景就会显示白色状态栏)