文档章节

APP开发前注意事项

 淡淡的邪恶
发布于 2015/12/30 14:24
字数 1239
阅读 10
收藏 0


APP开发前注意事项

设置证书,通知,分享,navigation ,屏幕方向,关闭 bit ,设置HTTP ,设置白名单,设置中文,设置icon,设置launch,设置状态栏,对不支持ARC文件设置-fno-objc-arc ,设置定位Plist,设置应用程序名bundle display name,设置PCH文件,URL转义,清除缓存,添加引用库,运行报错可以再Xcode 报错

打包到本地需要  AD HOC 证书

运行报错 查看  Xcode 报错  

Xcode 插件http://www.henishuo.com/xcode-plugin/

证书

申请开发证书,推送证书  ,配置文件

(上架的时候申请发布证书,推送证书,配送文件)

申请完毕,真机测试的时候

在 build setting ->  code signing  里面设置证书,配置文件

 证书选择 开发证书,开发的配置文件

在发布的时候

证书选择发布证书,发布的配置文件


分享 url Schemes

微信  :APPID

腾讯 : QQ” + AppId的16进制     801312852   为QQID

   在控制台 echo 'ibase=10;obase=16;801312852’|bc 

新浪 :wb+AppID       wb3026766091


  URL Scheme

com.hy.heShengHui (now)

http://sspai.com/31500

就是,协议,例如 http://www.baidu.com  中的http

应用的URL Schemes  可以在URL type自定义一个 值app。通过app:// 打开APP

app A 打开 app B;

在app B 中 设置URL types  设置URL Scheme  xxx(自定义)

在app A 中plist 文件中设置LSApplicationQueriesSchemes  添加一个 item ,

item 的值 为app B中设置的URL Scheme  xxx(自定义)。



设置openURL 白名单

LSApplicationQueriesSchemes  (info . plist)

LSApplicationQueriesSchemes     Array

  • sinaweibo,sinaweibohd,sinaweibosso,sinaweibohdsso,  新浪

  • wechat,weixin   微信

  • mqzoneopensdk, mqzoneopensdkapi,mqzoneopensdkapi19,mqzoneopensdkapiV2,mqqOpensdkSSoLogin,mqqopensdkapiV2,mqqopensdkapiV3,wtloginmqq2,mqqapi,mqqwpamqzone,mqq   腾讯


定位问题,在plist 文件添加两个 YES定位失败添加的info 里的方法 

NSLocationWhenInUseDescription,允许在前台获取GPS的描述

NSLocationAlwaysUsageDescription,允许在后台获取GPS的描述

iOS9.0 使用HTTP   ( 应该使用HTTPS)

在Info.plist中添加NSAppTransportSecurity类型Dictionary

NSAppTransportSecurity下添加NSAllowsArbitraryLoads类型Boolean,值设为YES


bitcode

xcode7 默认开启bitcode 如果APP使用的第三方库 不支持bitcode 会提示错误

解决方案: 在“Build Setting” -> “Enable Bitcode”选项中关闭bitdoce 

设置PCH文件

设置APP的语言为中文

在Supporting Files 中的info.plist 中将 Localization native development region改为China即可 

 

icon 

Icon files  :image.png  (Info.plist

launch

使用LaunchScreen.storyboard   设置 (正在用)

将LaunchScreen.storyboard  的view  删掉添加一个image view  5s 以上版本 的 启动图片问题  

不使用

做LaunchScreen.xib 打开右侧框,选择这个文件,然后在如图,把Use as launch Srceen取消掉,这个就是你之前一直设置Launch Image不成功的原因

launch Screen file  置空 


状态栏

info.plist文件中,View controller-based status bar appearance项设为YES,则View controller对status bar的设置优先级高于application的设置。为NO则以application的设置为准,view controller的prefersStatusBarHidden方法无效,是根本不会被调用的。

一、

View controller-based status bar appearance  NO

[UIApplication sharedApplication].statusBarStyle=UIStatusBarStyleLightContent;

在project target的Info tab中,插入一个新的key,名字为View controller-based status bar appearance,并将其值设置为NO。 

- (UIStatusBarStyle)preferredStatusBarStyle { return UIStatusBarStyleLightContent; }

ARC

不支持  -fno-objc-arc

应用程序名

bundle display name,  名字

bundle  name   打包的名称      需要在打包的时候调用


bundle display name会 控制最终显示给用户的应用程序名

bundle name 就是整个应用程序所形成的bundle name吧,。

一般最后修改一下bundle display name为中文就可以啦。 bundle name不用修改就行。

即bundle display name和bundle name不能相差太远。

例如bundle name设置为 TheApplication, 而 bundle display name设置为“金瓶梅”,则apple会拒绝你的app。

 

设置通知,分享,navigation ,屏幕方向

设置PCH文件

$(SRCROOT)/项目/PrefixHeader.pch

在PCH文件中 “ \ “  代表这一行没有结束,

#define string [NSString alloc]  \
\  initWithString\

\: @"hello world";\

上面的代表 一行 

加载的网页,有一部分在屏幕下面没有显示出来,需要滑动才能看到的 问题

禁止视图自动进行scroll 

self.automaticallyAdjustsScrollViewInsets=NO;

 NSValue 转化 CGRect  

 NSValue   *aValue;  CGRect Rect = [aValue CGRectValue];

继承文件的时候,子类文件的

viewDidLoad

viewWillAppear

viewWillDisappear

viewDidDisappear

需要实现父类的方法

[ super viewDidLoad  ];

[ super viewWillDisappear  ];




11、    Xcode清楚缓存、清理多余证书  清除缓存

1、删除Xcode中多余的证书provisioning profile 

手动删除: 
Xcode6 provisioning profile path: 
~/Library/MobileDevice/Provisioning Profiles

2、清理Xcode编译项目产生的缓存垃圾 
(Xcode永久了,会产生很多项目编译缓存,占用一大堆硬盘空间,此时需要对该目录进行清理) 
手动删除: 
Xcode编译项目缓存垃圾的目录: 

~/Library/Developer/Xcode/DerivedData


12、     URL转义

//下面中的内容为 不允许转义的字符

    NSString *encodedURLString = (NSString *)   //正在使用(uiwebview)

 CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,(CFStringRef)urlPath,(CFStringRef)@"!$&'()*+,-./:;=?@_~%#[]",NULL,kCFStringEncodingUTF8));

NSString *encodedString = [urlPath    stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];     ( WKwebview可用)

//转化方法 url  

1 NSString *utf8 =[string stringByRemovingPercentEncoding];


 2  NSString *urlencod = [_urlPath stringByTrimmingCharactersInSet:(NSCharacterSet.whitespaceAndNewlineCharacterSet)];

    NSLog(@"%@",urlencod)


3  NSString *url = [_urlPath stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];


NSString * encodedString = (NSString *)CFURLCreateStringByAddingPercentEscapes(NULL, (CFStringRef)yourtext, NULL, (CFStringRef)@”!*’();:@&=+$,/?%#[]“, kCFStringEncodingUTF8);


URL 不能包含 ASCII 字符集中, 不是必须这样的字符进行转义的字符。

使用 stringByAddingPercentEncodingWithAllowedCharacters 字符集URLQueryAllowedCharacterSet


© 著作权归作者所有

上一篇: 推送
下一篇: 推送
粉丝 0
博文 2
码字总数 1740
作品 0
浦东
私信 提问
选择App开发外包时,你该了解哪些法律常识?

随着App需求的激增,选择App外包服务的客户也多了起来。然而客户和开发方对于其中的法律条款却不甚了解,导致在服务过程中,时常会发生一些分歧和纠纷,最终致使项目搁浅。 为了普及App外包的...

达斯雷马
2017/01/06
309
0
最新Django2.0.1在线教育零基础到上线教程(四)-1&2

演示地址: http://mxonline.mtianyan.cn 教程仓库地址1: https://github.com/mtianyan/DjangoGetStarted 教程仓库地址2: https://github.com/mtianyan/Mxonline2 教程仓库地址3: https://gi......

天涯明月笙
2018/01/15
0
0
Android 通知常见样式小结

一.普通通知 这是最常见通知样式,如下图 默认样式,包括一个标题和一个内容,内容只显示一行 ,多余的内容会以省略号替代。 效果图:(第三行内容在低版本不一定显示) 注意: build内提供了...

肖朝胜
2016/10/12
74
0
向服务端发送FCSubscribe命令

利用ffmpeg向服务器发送FCSubscribe命令。 利用ffmpeg模拟 参考: http://www.ffmpeg.org/ffmpeg-protocols.html rtmp_subscribe Name of live stream to subscribe to. By default no valu......

andrew810810
2016/09/23
42
0
揭秘:APP定制开发的完整流程

下面要介绍的APP定制开发的完整流程,即使是搞程序开发的也未必知道,因为这是一个产品经理完整详细的总结写出来的。流程不仅包括了开发标准流程,还包括了上线发布等阶段。需要在这里提醒的...

拜拜佛
2016/11/01
13
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring系列教程八: Spring实现事务的两种方式

一、 Spring事务概念: 事务是一系列的动作,它们综合在一起才是一个完整的工作单元,这些动作必须全部完成,如果有一个失败的话,那么事务就会回滚到最开始的状态,仿佛什么都没发生过一样。...

我叫小糖主
今天
5
0
CentOS 的基本使用

1. 使用 sudo 命令, 可以以 root 身份执行命令, 必须要在 /etc/sudoers 中定义普通用户 2. 设置 阿里云 yum 镜像, 参考 https://opsx.alibaba.com/mirror # 备份mv /etc/yum.repos.d/CentO...

北漂的我
昨天
2
0
Proxmox VE技巧 移除PVE “没有有效订阅” 的弹窗提示

登陆的时候提示没有有效的订阅You do not have a valid subscription for this server. Please visit www.proxmox.com to get a list of available options. 用的是免费版的,所以每次都提示......

以谁为师
昨天
3
0
Java设计模式之外观模式(门面模式)

什么是外观模式   外观模式(Facade),他隐藏了系统的复杂性,并向客户端提供了一个可以访问系统的接口。这种类型的设计模式属于结构性模式。为子系统中的一组接口提供了一个统一的访问接口...

须臾之余
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部