Author Archives: aries4u

About aries4u

淘宝搜索凯豪软件

XCode8中开发者账号的设置

在Xcode8中,设置开发者账号前请先按Commond+,打开account并登录已注册成功的appleid,然后下载对应已经在devcenter中配置好的profile。

前提: 1.一个已申请成功的开发者账号,个人/公司/企业账号,如果没有申请成功的话,请到凯豪软件的官方淘宝店咨询购买。传送门->http://appfish.taobao.com

2配置Dev Center中的根证书和Provisioning,具体视频可以在优酷中搜索“凯豪软件”

3.打开xcode,按Command + , 打开Account并登录已申请成功的开发者账号所对应的Appleid,并且Download已配置成功的provisioning profiles。

4.依次按下面三个图配置证书即可:

http://www.aries4u.com/001/

http://www.aries4u.com/002/

http://www.aries4u.com/003/    

InnoDB

SHOW TABLE STATUS

Name Engine Version
tbl_user InnoDB 10
tbl_address InnoDB 10

ALTER TABLE jsp_db.`tbl_address` ENGINE = INNODB;

ALTER TABLE jsp_db.`tbl_user` ENGINE = INNODB;

InnoDB 配置

http://dev.mysql.com/doc/refman/5.0/en/innodb-configuration.html

 

java代码段:

package com.aries4u.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * Created by Liukaibo on 2016/3/16.
 */
public class TransactionTest {
    public static Connection getConnection() {
        Connection conn = null;
        try {
            Class.forName("com.mysql.jdbc.Driver");
            conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/jsp_db", "root", "mysqlroot");
        } catch (SQLException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        return  conn;
    }

    public static void insertUserData(Connection conn) throws SQLException {
        String sql = "INSERT INTO tbl_user(id, name, password, email)" +
                "VALUES(10, 'TOM', '123456', 'tom@126.com')";
        Statement st = null;
        int count = 0;
        st = conn.createStatement();
        count = st.executeUpdate(sql);
        System.out.println("向用户表插入了" + count + "条记录");
    }

    public static void insertAddressData(Connection conn) throws SQLException {
        String sql = "INSERT INTO tbl_address(id, city, country, user_id)" +
                "VALUES(1, 'SHANGhai', 'china', '10')";
        Statement st = null;
        int count = 0;
        st = conn.createStatement();
        count = st.executeUpdate(sql);
        System.out.println("向地址表插入了" + count + "条记录");
    }

    public static void main(String[] args) throws SQLException {
        Connection conn = null;
        try {
            conn = getConnection();
            conn.setAutoCommit(false);  // 只有设置成false的时候InnoDB才有效

            insertUserData(conn);
            insertAddressData(conn);

            conn.commit();
        } catch (SQLException e) {
            System.out.println("===========捕获到SQL异常===============");
            e.printStackTrace();
            if (conn != null) {
                conn.rollback();
                System.out.println("===========事务回滚成功===============");
            }
        } finally {
            if (conn != null) {
                conn.close();
            }
        }
    }
}

Xcode中去掉烦人的警告

// 让编译器忽略烦人的内存泄漏警告(慎用)

#pragma clang diagnostic push

#pragma clang diagnostic ignored “-Warc-performSelector-leaks”

data = [[NSData class] performSelector:dataWithUncompressedContentsOfFile withObject:bundlePath];

#pragma clang diagnostic pop

 

 

// 见不见为净的不兼容指针

#pragma clang diagnostic push

#pragma clang diagnostic ignored “-Wincompatible-pointer-types”

#pragma clang diagnostic pop

 

// 没有使用过的变量再也不提示了

#pragma clang diagnostic push

#pragma clang diagnostic ignored “-Wunused-variable”

NSString *strParams = @””;

#pragma clang diagnostic pop

 

http://clang.llvm.org/docs/UsersManual.html#diagnostics_pragmas

Xcode7、iOS9网络访问权限问题

调用网络访问的时候发现权限不够,报如下错误:
The resource could not be loaded because the App Transport Security policy requires the use of a secure connection.

查证iOS9.0后苹果的官方文档更新:
https://developer.apple.com/library/ios/releasenotes/General/WhatsNewIniOS/Articles/iOS9.html#//apple_ref/doc/uid/TP40016198-DontLinkElementID_13

App Transport Security

App Transport Security (ATS) enforces best practices in the secure connections between an app and its back end. ATS prevents accidental disclosure, provides secure default behavior, and is easy to adopt; it is also on by default in iOS 9 and OS X v10.11. You should adopt ATS as soon as possible, regardless of whether you’re creating a new app or updating an existing one.If you’re developing a new app, you should use HTTPS exclusively. If you have an existing app, you should use HTTPS as much as you can right now, and create a plan for migrating the rest of your app as soon as possible. In addition, your communication through higher-level APIs needs to be encrypted using TLS version 1.2 with forward secrecy. If you try to make a connection that doesn’t follow this requirement, an error is thrown. If your app needs to make a request to an insecure domain, you have to specify this domain in your app’s Info.plist file.
解决方法如下:
1.找到info.plist
2.添加NSAppTransportSecurity或App Transport Security Settings,Type为Dictionary
3.添加NSAllowsArbitraryLoads或Allow Arbitrary Loads,Type为Boolean,Value为YES
 

苹果开发者个人、公司、企业账号使用注意事项

苹果开发者个人、公司、企业账号使用注意事项

个人账号:打包方式:adhoc,appstore

公司账号:打包方式:adhoc,appstore

企业账号:打包方式:adhoc,inhouse

 

苹果企业账号(Apple Developer Enterprise Program)是苹果公司提供给 iOS 开发者的一种高级别的开发者账号,区别于个人开发者账号和公司开发者账号,企业账号具有如下特点:

 

价格比个人账号和公司账号更贵,官方年费为 299$/年(RMB1988元)

不可以提交应用到 App Store 商店

可以将签名后的应用在任何 iOS 设备上安装,且没有安装数量的限制

其中,正是由于第3条的特点,给开发者在测试和分发 App 时,带来了极大的便利。所以,一般开发者申请使用苹果企业账号(或苹果企业签名),也是为了这个特点。

 

但是,因为苹果对于 App 的安装有着非常严格的限制,所以苹果对企业账号的使用也给出了种种严格的条款,详见:Apple Developer – Terms and Agreements 。其中,最重要的条款是:

 

使用企业账号签名后的应用,只可以用于企业内部员工安装,不可以公开下载。

根据经验,很多开发者在违背了上述条款后,导致企业账号被封,从而造成了不小的损失。所以,我们强烈建议开发者在上传企业签名的应用到企业服务器后,做到如下几点:

 

  1. 不要将企业签名后的应用发布到某些应用市场
  2. 将应用上传到企业服务器后,设置一个下载密码
  3. 不要将应用的安装链接公开,做到只在企业内部安装使用
  4. 最好不要在企业账号中使用消息 推送机制
  5. p12和provisioning profile文件不要随意导入导出,最好专人专机
  6. 公司、企业账号是可以邀请公司网站域名后缀的邮箱成为开发者成员之一的,但不要邀请和公司域名后缀不一致的邮箱做为开发者成员。
  7. 打包的app,必须使用ssl证书和https协议进行分发,分发网站的域名,最好是申请企业开发者账号时填的域名。
  8. 下载app的页面,记得加上随机的下载密码+验证码,不要给苹果爬虫的机会
  9. 自已的开发者账号千万不能外借,借一个封一个。
  10. 万不得已不要将个人、公司、企业账号的p12和provisioning profiles上传到第三方打包平台,如云编译、云打包之类的,你也不知道这些平台会拿着你的账号证书去干什么事。
  11. 企业账号只能面向企业的内部员工使用,一般用在OA系统、app内部发放测试,推荐测试的时候采用adhoc模式点对点发放,如果测试设备数量巨大的情况下再使用inhouse发布。
  12. 测试的时候最好在企业内部网络进行,如果需要连接internet的话,请一定要注意网络环境不要发生太大的变化,比如证书使用地在上海,测试地在北京,就很容易被封号。
  13. 测试完成后记得删除当前设备上的App
  14. 网络电话voip、积分墙、游戏充值平台等类型的app都很容易被封号,因为商业模式和苹果公司有冲突。
  15. 不要恶意重复提交AppStore审核,这会造成苹果公司直接封掉您的个人、公司账号。
  16. 每个月20号的前后一周,是苹果封号的高峰期,请大家注意,尽量避免在这个时间节点进行敏感操作。

只要做到以上几点,开发者即可安全的使用苹果开发者账号进行App编译打包和分发。

对于企业账号来说,苹果的管控是非常严格的,任何违背苹果ADP和ADEP条款使用企业账号,都会有让开发者账号有被封的风险。

根据经验,我们总结了上述几条规则提供给所有开发者,只要根据严格遵守,即可极大程度的避免自已的开发者账号被封。

账号一旦被封,基本上也就没有办法找回来了,钱也不会退的(苹果的ADP和ADEP中有霸王条款),随后苹果会给你发一封邮件通知,并且一年内不得再次注册。

苹果对账号监管很大程度上是取决于苹果人工审核,所以并没有100%安全的事情,有的时候,也需要一点运气。

最后,苹果开发账号能否正常安全的使用,只取决于你自已账号的使用方法、企业的商业模式等,和凯豪软件并没有任何关系。

 

 

================注册开发者账号请看这里================

1.iOS Apple苹果开发者账号申请idp证书个人individual注册凯豪软件

注册个人开发者请点击此链接:

http://item.taobao.com/item.htm?id=36162166668

2.iOS Apple 苹果开发者账号 注册申请idp证书 公司Comapny凯豪软件

注册公司开发者请点击此链接:

http://item.taobao.com/item.htm?id=361857929

3.iOS Apple苹果开发者账号申请idp证书企业Enterprise注册凯豪软件

注册企业开发者请点击此链接:

http://item.taobao.com/item.htm?id=36176694668

 

 

删除XCode中多余的provisioning profiles

/Users/Liukaibo/Library/MobileDevice

下面的文件,随便删。。。删完之后记得下载对应的provisioning profiles重新导入~

 

推荐仔细看看这里的文章

https://github.com/chockenberry/Provisioning

Null passed to a callee that requires a non-null argument

升级到Xcode7之后,发现突然多了很多warning

之前写的

UINavigationItem *navItem = [[UINavigationItem alloc] initWithTitle:nil];// Null passed to a callee that requires a non-null argument

注意nil参数,为了兼容swift,所以Xcode里设置了nonnull/nullable

不嫌麻烦的话可以重写这个方法:

UINavigationItem *navItem = [[UINavigationItem alloc] initWithTitle:@””];

嫌烦的朋友可以直接加上这段

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wnonnull"
UINavigationItem *navItem = [[UINavigationItem alloc] initWithTitle:nil];
#pragma clang diagnostic pop

 

AppStore上架被拒/Reject/Metadata Reject 收集

以下都是收集过来的一些文章,如有违反了您的利益,请直接联系本人。

App Store–心酸的上线路,说说那些不可思议的被拒理由

原文地址:http://www.cocoachina.com/appstore/20141107/10165.html
开发者在提交应用进行审核后,总会遇到各种各样的被拒理由,大部分被拒理由可以从苹果的App Store审核指南中找到,不过也有一些比较奇葩的理由,偶尔也会有一些苹果审核人员的人为原因,你曾经被拒的理由,尤其是奇葩理由有哪些呢?欢迎参加我们当前正在进行中的活动,来和大家分享下你的经验和经历。
以下是会员列举出的审核被拒理由,按照回答顺序先后合并重复理由,一起来看看苹果最近有什么新的审核动向吧!如果你也有奇葩的被拒理由,可参与我们的活动进行分享.
yoyeayoyea
您的应用包括色情内容(色情交易,色情展示)。
原因是我们的销售人员,把几张艺术照放在个人相册里(头像),换成卡通头像,通过。
 
颜小风
被拒很正常 一次通过不正常。
之前上线过一些webapp版本,就是个web页面+一个壳,但是客户需要这东西呀,想法设法的上线,后来写了一个伪界面,弄出几个复杂原生页面来,然后增加一个时间判断,等到一个月以后再加载客户需要的界面,没想到这样做居然通过了。
基调中国
有微信分享功能,结果因为要强制用户安装微信,才能使用该功能,被拒!
akring
第一次:应用内用了圆角按钮,无情被拒。
第二次:你给我解释解释,应用里的积分从哪里来,到哪里去?
acgf
应用里面表示有广告,但是审核者玩了后说没广告,后来申述成功,因为第二次游戏的时候才会出现广告(虐心重复向游戏),你丫就不能玩两遍么,一遍就几十秒~~
andebi
有第三方支付(支付宝)果断被拒!!!
desert_fox 
因为隐私条款被拒了2次,第一次是以为要在程序里加隐私条款,被拒了,还给我详细说要在哪里改。
铁蛋
因为集成了友盟  友盟获取用户mac地址被拒了。
诸神的黄昏曲
您的内容因为没有举报功能、含有色情内容不能通过。
sandpiper
17.5  隐私政策被拒
我的应用没有登录,没有注册,没有个人信息相关,我的应用完全没有隐私可言,他竟然给我17.5 这隐私政策。
使用第三方的logo被拒。
由于涉及到联通运营方面 果断在关于里面加了个联通的logo 标识合作伙伴 果断被拒 要求提供联通的书面证明。
没给测试帐号
同17.5 应用没有登录,没有注册,完全面向公众,他给我的拒绝理由是没有提供测试帐号。
获取广告标识符 没有使用被拒绝
果断我应用中加了各种广告还是被拒,启动页广告,加底部广告都加了,他竟然告诉我我的应用没加广告而被拒,申诉后告诉我要用苹果的iAD XXXX,果断去掉广告标识符.
mohao
理由是QR CODE里边有android的下载地址(直接转跳iTunes后通过)
上周悲剧了,理由是10.1,不符合iOS UI审美观(改UI)
还有一次悲剧了,理由是只有第三方登陆,没有自己的注册登陆功能…(新增登陆注册功能通过)
angellixf
你的软件加了强制评论功能:就一个按钮点击进入评论,必须改成先提示框提醒用户是否进入评论.
womenshihaic
第三方支付被拒,要求使用苹果内购 30%啊30%,我的应用是现实物品交易,这30%卖家出还是买家出?
sffofn
存放文档的地方由于iCloud会自动备份而被拒绝,只有用户自己使用和创建出来的才允许放在Document文件夹下。
花太香齐
审核员打不开我的接口,换海外vps,过最蛋疼的。
iampat
因为截图里面放了iPhone的模型被拒。
乔布斯2013
1.游戏运行崩溃;
2.游戏截图中有“测试字样”;
3.游戏太简单;
4.一次提交多个相同的游戏;
5.游戏中使用其他版权图片(使用了flappybird原图)
6.加了广告框架,游戏中缺没有广告显示(其实是在game over时候显示,结果测试人员就一直不知道怎么能死);
7.内购不能使用;
8.game center不能使用。
createmiracle
App Store显示名字和软件名称不符合。
支付时不得强制获取用户信息 (比如  登陆、注册),必须在看到价格之前让用户登陆、注册。
App内购,产品类型不对。
 
lyywhg
我遇到过
第一:和电信合作的应用(因为有电信Logo),苹果拒绝:需要提供电信合作协议书。
第二:电子书项目,前一个版本审核通过了,后一个被拒绝,苹果拒绝理由:不再支持未经版权授权的单本书籍类应用。
第三:包中含有Beta文件,苹果拒绝理由:不支持Beta版本上传苹果商店。
第四:服务器恰好那时间在维护,苹果拒绝理由:登录注册都不能用。
下雨天、轮滑
1.说app使用了广告标示符,但没发现有使用广告标示符的地方。
解决:移除了Adsupport框架。(不知啥时候加的)
2.内购没有Restore按钮;
3.有登陆注册功能,但没有提供测试账户(大意了)
4.有去除广告的按钮,但没发现有广告。
解决:后来截了个图,回复审核那边,两小时之内就通过审核了;
5.版权问题。没有提供相关的版权文件
6.评级问题:提交的时候是评级4星,后来被拒,改成12星,通过审核了。
evilshot
3次 20.5条款,每次都出新状况,我勒个去,最主要的是还没有上架。
怀念你的温柔
1.关键字不符合要求
2.提交时说有idfa,但苹果测试时没看到广告,⊙﹏⊙b汗
3.内容太简单,说是浪费用户时间
4.界面风格不符合iOS风格
5.应用评级,从4+改成12+,再改成16+最后说我不符合16+,我再改回4+,竟然过了…
rainieljy
就说个我觉得最搞的一次悲剧吧:Splash上放了个蝙蝠侠蜘蛛侠,版权问题未给通过,后让UI改画了一个猥琐男人,通过了。
zkforever
应用内有个保存图片至相册的按钮,然后plist里有个Application supports iTunes file sharing设为了yes,无情被拒。
woodn_z
用户在应用里自己下载的文档都不能存放在Document文件夹下,被拒。
a4110494
就一条 : 为了获得审查应用程序的完整功能,我们需要相关的硬件。
我以前都是录制一个操作视频上传然后就通过了,这回我录了2次都是相同的回复,不知道抽什么风。
zpjvip
做了款社交的软件,上线的时候没有提供账号和密码,导致审核的时候进不去,reject.
ps:那么大个注册 看不到么?看不到么?
computernot
论坛模块里由用户发的活动贴提到安卓平台和WP平台被拒,然后我说我没问题,他说三个工作日之内电话联系,过去4-5天了,还没联系。
moonfrey
按钮位置不符合ios风格。
huanghanwei818
一个笑话APP,开机画面上有“逗比”这两个字,苹果审核说含有粗俗不文明的文字,然后被拒了。
wengxianxun
QQ登陆功能,但是没下载QQ就不行。
sinyran
第一次没有给用户举报的功能。加了只有新浪和qq登录没有自己的登录注册系统(QQ SDK的没装QQ提示的是下载)。好像还有没有用户协议巴拉巴拉,反正那次审核就耗一月的时间。
米兰9号
审核人员打开app无法加载内容,一般是因为国内服务器的问题。
解决方法是录个app的操作视频,放到youtube上,发给苹果,屡试不爽。
zhangyuchang1
界面太丑被拒,换了张背景图通过了。
职业吐槽
iPad 写成了IPad。
bluesky0318
没提供注册功能,被拒…开放注册通过;
按钮图片类似iPhone桌面图标被拒;
因为iCloud云备份的问题被拒绝,将备份功能关闭通过。
royluoyao
使用第三方SDK,有个提示信息遮挡了状态栏。
graceydb
图片上有链接。
shuaiyinoo
因为有android关键字被拒绝了,因为描述中有android关键字被拒绝了,因为有swfit关键字是个没发布的语言被拒绝了。因为按钮点击无效被拒绝了。
泊雨
说功能太简单了, 不让上。
zhuang.haishao
1.使用第三方登录
2.内容包含苹果产品iPad
3.IDFA
4.有竖中指的图片
5.IDFA展示广告没有提供视频
chaobaji
1.注册页未添加pravicy声明文件。
2.iTunes升级后,分级莫名奇妙由12+变成了4+。
3.用了显眼的词语,其实就是”Beautiful girl”之类的,说内容令人反感。
4.引导页文案与内容不符。
solomon_bobo
因为应用截图被拒。
美术偷懒给了4张android的截图,虽然app内容是一样的,但是顶部的状态栏是Android的!
野猪洋洋笨
我能想到的被拒理由大概就这些吧:
1.名字不符合,包含不良信息,包含与当前app不符的内容,包含特殊含义的歧义字符—被拒
2.苹果审核人员测试过程中出现crash或黑屏—被拒
3.没有给审核人员测试账户—被拒
4.截图与app内容不符—被拒
5.app代码中含有读取设备udid的代码—被拒
6.app中有积分墙—被拒
7.app中有第三方支付(如短信支付,积分墙支付)
8.App的功能过于单一或仅仅是一个demo—被拒
9.在注册时强制获取用户信息—被拒
10.需要提供原作者的版权授权书—被拒
11.App中有IAP内购,但是没有恢复内购的按钮—被拒
12.强制玩家给app评5星好评—被拒
13.没有兼容iOS—无情被拒,无情被拒,无情被拒啊。
=========================分隔线=========================
原谅地址http://blog.csdn.net/annkey123/article/details/8778996
应用程序崩溃
界面布局有明显错误
挂羊头卖狗头的应用
包括未公开的或隐藏功能的
使用私有API
应用程序读取或写入数据超出其指定的容器区域
以任何方式下载代码的应用
安装或启动其他可执行代码的应用
“试用”,“演示”,“试用”,或“测试”版本
iPhone应用程序也必须不加修改地运行在iPad,iPhone分辨率和2倍iPhone 3GS的分辨率
山寨或者重复的应用(App Store中已经存在有相同功能的应用程序)
应用程序必须有特定用途,不能为用户提供持久娱乐价值可能会被拒绝
主要是市场推广或广告的应用程序
虚假功能,没有明确目的
应用程序在蜂窝网络环境下载大于20MB的数据(自动被禁止在App Store)
多任务的应用程序可能只使用与后台服务,一般只提供给:网络电话,音频播放等app使用,任务完成后,需要本地通知。
浏览网页,必须使用iOS WebKit框架和WebKit JavaScript
鼓励过量饮酒或非法物质,或鼓励未成年人饮酒或吸香烟的应用程序
应用程序提供了不正确的诊断或其他设备的数据不准确,
开发“垃圾邮件”等类似的
应用程序的数据中提到的其他任何移动平台的名称
带有占位符文本的应用程序
不相关应用程序内容和功能的描述
在iTunes Connect的应用程序名称和显示的设备上应该是相似的
应该是相似的小的和大的应用程序图标
应用程序与应用程序的图标和屏幕截图,不支持4 +年龄评级
应用程序类别和类型的选择是不恰当的应用程序内容
开发人员负责分配适当的评级给应用程序。不适当的评级可能会被苹果改变
开发他们的应用程序负责分配适当的关键字。不适当的关键字可能会被苹果 更改/删除
开发人员试图操纵或欺骗用户的评论或图表排名在App Store虚假或付费评论,或任何其他不适当的方法
应用程序不通知,并获得用户的同意,然后收集,传输,或使用位置数据
使用基于位置的API,用于自动或自主控制的车辆,飞机或其他设备的应用
应用程序使用基于位置的API,用于调度,车队管理,紧急服务
提供推送通知的应用程序,而无需使用苹果推送通知(APN)API
使用APN服务的应用程序,没有从苹果获得推送应用程序ID
没有首先获得用户同意发送推送通知的应用程序,
发送敏感的个人或机密信息的使用推送通知的应用程序,
使用推送通知的应用程序,发送不请自来的邮件或网络钓鱼或垃圾邮件的目的,
应用程序不能使用推送通知发送广告,促销或任何形式的直接营销
使用推送通知的应用程序不能向用户收费
过度使用网络容量或带宽的APN服务或造成过重的负担的设备推送通知的应用程序
传送病毒,文件,计算机代码或程序,可能会损害或破坏的APN服务的正常运行的应用程序,
最终用户或任何第三方应用程序显示任何玩家ID会被拒绝
应用程序用于任何用途以外的其他游戏中心条款批准的使用玩家的ID
从iOS开发者计划的开发人员尝试反向查找,跟踪,关联,关联,矿山,收获,或以其他方式利用玩家的ID,别名或通过游戏中心获得的其他信息将被删除
游戏中心的信息,如排行榜成绩,只可用于在应用程序批准使用游戏中心
游戏中心服务的应用程序,使用发送不请自来的邮件或网络钓鱼或垃圾邮件的目的
过度使用网络容量或带宽的游戏中心的应用
传送病毒,文件,计算机代码或程序,可能会损害或破坏游戏中心服务的正常运行的应用程序,
“应用程序,人为地增加展示次数或点击的广告
应用程序包含空iAd的横幅
应用程序的设计主要是为广告的显示
应用程序必须遵守的所有条款和条件的解释中使用苹果商标和版权的的http://www.apple.com/legal/trademark/guidelinesfor3rdparties.html”>指引 和 http://www.apple.com/legal/trademark/appletmlist.html 苹果商标列表
应用程序建议或推断,苹果是源代码还是供应商的应用程序,或者,苹果表示赞同任何特定的质量或功能
现有的苹果产品或广告主题出现混淆性相似的应用程序
应用程序拼错苹果产品的名称,在他们的应用程序的名称(例如,GPS ,iPhone,iTunz)
使用受保护的第三方材料(商标,版权,商业秘密,,否则专有的内容),需要检查必须要求提供文件的权利
谷歌地图和谷歌地球获得的图像通过谷歌地图API可用于在应用程序中,如果所有的品牌特征的原始内容保持不变,完全可见。覆盖或修改谷歌标志或版权持有人识别的应用程序
不使用MediaPlayer框架访问媒体在音乐库中的应用程序
模仿任何iPod界面的应用程序的用户界面,
蜂窝网络音频流媒体内容,不得使用超过5分钟,超过5MB
通过蜂窝网络的时间超过10分钟的视频流媒体内容必须使用HTTP实时流媒体和包括一个基线64 kbps的只有音频的HTTP直播流
应用程序必须遵守所有条款和条件解释< iPhone人机接口指南</ A>和<a href=”/library/ios/documentation/General/Conceptual/iPadHIG/Introduction/Introduction.html”>苹果iPad的人机界面指南</ A>
类似于捆绑在iPhone上的应用程序,包括在App Store,iTunes商店和iBookstore的应用程序,
在<a描述的应用程序不使用系统提供的资料,如按钮和图标,正确和iPhone人机接口指南</ A>和<a href=”/library/ios/documentation/General/Conceptual/iPadHIG/Introduction/Introduction.html”>苹果iPad的人机界面指南“</ a>也被拒绝
应用程序创建备用桌面/主屏幕环境或者模拟多应用程序的部件经验
应用程序改变的的标准按键功能,如音量上/下和响铃/静音开关,
苹果公司和我们的客户将高价值的,简单的,精致的,创造性的,以及想通过接口。他们采取更多的工作,但都是值得的。苹果公司设置了很高的门槛。如果您的用户界面是复杂的,或小于很好的,它可能会被拒绝
解锁或启用额外功能或功能,在App Store以外的其他机制的应用程序
应用程序使用的In App Purchase API(IAP)以外的系统购买内容,功能或服务在一个应用程序会被拒绝
使用IAP购买实物产品或商品和服务的应用程序之外的应用程序
应用程序使用IAP购买积分或其他货币的,必须在应用程序内消费贷
应用程序使用IAP购买积分或其他货币,到期
内容订阅,使用IAP必须持续至少30天,并从他们的iOS设备提供给用户
应用程序使用IAP购买物品的,必须指定正确的Purchasability类型
应用程序使用IAP购买访问内置的功能,如相机或陀螺仪内部监督办公室的,
应用程序含有“出租”内容或服务到期后,在有限的时间内
保险应用程序必须是免费的,在法律遵守的地区分布,而不能使用IAP
在一般情况下,您的应用程序更昂贵的,更彻底,我们会检讨
刮任何信息的应用程序,从苹果公司的网站(例如从<a href=”http://apple.com”> apple.com </ A>,iTunes的应用程序商店,商店,iTunes的连接,苹果开发者程序等)从苹果公司的网站和服务内容创建的排名
应用程序可以使用批准的苹果RSS饲料,如iTunes Store的RSS订阅
应用程序是网络的剪报,内容集成商,或链接的集合,可能会被拒绝
鼓励用户使用苹果设备的方式,可能会导致设备损坏的应用
设备的电池很快耗尽的应用程序或产生过多的热量会被拒绝
任何应用程序,是诽谤,攻击性的,卑鄙的,或可能危害方式将目标的个人或团体
专业的政治讽刺和幽默诙谐的可被豁免从进攻或心胸狭窄的评论禁止
应用程序展示:杀害或致残,枪击,刺伤,拷打或受伤的人或动物的描绘逼真的图像
描绘暴力或虐待儿童的应用程序
包含“虚拟敌人”的游戏,不能只针对一个特定的种族,文化,一个真正的政府或公司,或任何其他的实体
应用程序逼真的描绘,鼓励使用某种武器
包括俄罗斯轮盘赌的游戏
呈现过于令人反感的内容的,
扰乱或厌恶用户的应用程序,
应用程序不能没有获得用户的许可之前,为用户提供获取信息的方式和位置数据将被用于传输用户的数据
应用程序需要用户共享的个人信息,如电子邮件地址和出生日期,以功能
应用程序目标的数据收集未成年人
含有色情内容的材料,“描述或显示性器官或活动,旨在刺激,而不是审美情感和情绪的色情”
应用程序包含用户生成的内容,经常色情(如“聊天轮盘”的应用程序)
应用程序包含引用或评论有关宗教,文化或族群,诽谤,攻击,心胸狭窄,容易暴露目标群体伤害或暴力
应用程序可以包含或引用宗教文本提供的报价或翻译准确且无误导成份。评论应该是教育或信息,而不是炎症
抽奖和竞赛必须由应用程序开发者/公司
抽奖和竞赛的正式规则,必须在应用程序中的,并明确表示,苹果是不是保荐人或以任何方式参与的活动
它必须是法律允许的情况下运行的彩票应用程序的开发人员,和彩票的应用程序必须具有以下特点:考虑的机会,并颁发
应用程序,允许用户在应用程序中直接购买彩票或奖券
应用程序,其中包括可以使认可慈善机构的捐款,必须是自由的
收集的捐款必须通过一个网站,在Safari或SMS
应用程序必须符合所有法律要求的任何位置,他们向用户提供。这是开发商的责任了解和遵守当地的所有相关法律法规
应用程序包含虚假,欺诈或误导性陈述,
应用程序,征集,推广,或鼓励犯罪或明显鲁莽行为
,使非法文件共享的应用程序
应用程序是专为用作非法赌博辅助工具,包括卡柜台,
应用程序,使匿名或恶作剧电话或SMS / MMS消息
开发人员创建的应用程序的人,偷偷摸摸地试图发现用户密码或其他用户的私人数据将被删除从iOS开发者计划
=========================分隔线=========================
原文地址:http://blog.csdn.net/xiaoyuanzhiying/article/details/40384389

补充:

APP被苹果APPStore拒绝的各种原因

1、程序有重大bug,程序不能启动,或者中途退出。

2、绕过苹果的付费渠道,我们之前游戏里的用兑换码兑换金币。

3、游戏里有实物奖励的话,一定要说清楚,奖励由本公司负责,和苹果没有关系。

4、用到苹果的标志。(应用的设计和Apple的Logo风格太像了也会被拒)

5、网络功能不能正常访问。

6、图标不能点击,不能点击的图标要置灰,或者直接隐藏。

7、没有设置default页,启动画面为黑屏,有一定概率被拒绝。

8、一个应用在线,但你想在发一个豪华版之类的,再开一个应用也会被拒绝。

9、用了著名游戏的关键字,比如说“愤怒的小鸟”之类的。

10、iPhone版不支持480*320分辨率被决绝。

11、娱乐分类App,拒绝理由:我们认为你的App不具有娱乐性。

12、你的软件不符合中国法律,还打电话来跟我说。(奶奶的,中国哪个法律说不可以fanqiang。)

13、技术支持地址写的微博地址,于是被拒绝了。原因是:不能将需要登陆才能访问的网址作为技术支持地址。

14、说我们的应用不该用App开发,应该用HTML5。(而且还很热心的给出了参考链接哦)

15、调用截屏功能,当时没注意,是私有API,被拒.改成非私有API实现截屏功能就通过了.

16、开放了文件document分享功能(Application supports iTunes file sharing),被退回,理由:不需要分享,为何开放了.回复邮件说

明理由后上线.

17、年龄设置太低,说是有成人内容,被拒.修改内容后上线.

18、同一软件多个版本只是针对不同的国家和内置的语言不同.前面几个上线,后面几个被拒.让改成一个程序做程序内下载资源.

19、程序有crash被拒.修改bug后上线.

20、原因是我们的一个软件只允许联通用户验证真实身份并发布信息。apple要求要么放弃验证,要么允许移动和电信用户验证。

21、APP中出现了某本以乔布斯为封面的本集团出版物图片,遭拒。回复曰:Thank you for submitting your app commemorating

Steve Jobs.

We appreciate your efforts honoring Steve. However, we’ve decided to honor his life in other ways and we are not

accepting these types of apps.

22、原来做过一个显示假电池的App, 就是显示一个假的的电量, 这样别人找你借手机就可以以没电了为理由不借给他. 结果App Store说

会迷惑用户, 让我改简介. 改为简介后苹果中国给我打电话说这个App不用再提交了, 不可能过, 会迷惑用户… 我了个去的 于是这个App就一直存在在我的iTunes Connect里.

23、忘记提供测试账号。(如果你的APP有登录功能)

24、软件有个vip功能,涉嫌应用内收费。

25、拨打电话,涉嫌扣费。

26、图片如果比较清凉的话需要设置软件级别。

27、平板应用要支持最少2个翻转方向。

28、程序内按钮设计成标准的iOS icon。

29、内置付费的内容要明确告诉需要购买,购买前不能摆出来(这个属于运气不好,同样这么做的app很多)

30、提交旗下一款新应用,为统一旗下各个产品的品牌识别,采取了与上一款产品相似的色调和logo结构。苹果拒绝理由是不知道这两款产

品有什么区别(其实区别点进去就很明显,连UI布局都大相径庭)。

31、应用内涉及到抽奖的运营活动,未声明与苹果官方无关。

33、自认为第一版产品还不够完善,于是过度谦虚地在启动画面加上了“beta”字样。苹果的反馈是,不允许测试版产品上架。囧,后来翻了一下 Review Guideline 似乎是有提到这点的。

34、链接堆砌,苹果建议用HTML5来做

35、UIWebView 嵌页面片,苹果建议让用户通过浏览器访问,比如爱知乎,开始几个版本通过了,后面的更新一直没提交上去屏幕坏点检测应用,苹果说会误导用户,未上架

36、登陆账号有两个字母写反了,改正后通过

37、因远程服务器反应慢,苹果的人估计没耐心等,就说有bug给拒了,重新提交一份通过

38、应用标题加了几个描述语句,苹果让在描述中写明达到此目的的操作流程,改正后通过

39、一个第三方的应用,描述文字中有该网站的链接,进去网站后能找到付费链接,苹果说该网站有自己的支付方式,去除网址后通过

40、应用请求使用地理位置的权限,但相关功能藏得比较深,Apple说没找到相关的功能。 — 回信说明后通过

41、应用描述中提到了是全平台应用,可以和其他系统同步数据。因为提到了“Android”的字眼被拒。 — 修改描述后通过

42、 App 的User Agreement中出现了 Beta、Preliminary 等字样。因为是发布第一个版本,产品带有一定的beta性质,但是确实是可

发布产品了。按照公司LEGAL部门(外企,对User Agreement要求严格)的要求,必须有类似Beta的说明告知用户,而 Apple 是明确不允

许有 Beta 性质的字样的。

43、App 是一个机遇小区的社区工具,顺便做了房产广告,但是 apple 审核说是广告app,不允许发布。

44、应用里有个去给我们打分的功能,被拒了。。(这是不是史上最坑爹的拒绝理由)

45、网络工具软件,要求支持国外的电信运营商网络。

46、曾经做一个 Chinajoy 美女图片 show 的,被认为不适合放在 App Store。

47、iOS 5 的数据存储问题…网络下载的资源不能直接搞在Documents目录下。这个反复整了5次左右才通过审核。

48、忘记提供测试账号……(审核的大爷们你们就不能自己弄个或者注册个账号么)

49、还有一次被拒,我回复说你们所说的问题不存在……后来……通过审核了。-.-

50、菜单中有一个文字包含测试,被打回,说不能上测试版本。

51、app名字包含pad,被打回,说容易名字不能有pad,会被误解为苹果自己的应用,不过同名的iphone版本就通过了…

52、upport地址在safari(仅仅是safari)下由于适配性问题打不开,结果就收到了apple的来信。

53、app里做了次抽奖,奖品是iphone4s,结果他们必须要我们将奖品改成别的,同时申明此活动与苹果公司无关,才可以上架。。。

54、app里做了次抽奖,奖品是iphone4s,结果他们必须要我们将奖品改成别的,同时申明此活动与苹果公司无关,才可以上架。。。

55、在程序的说明信息中有“越狱”俩字,被拒,后来把这俩字去了,PASS。但是:如果我在程序运行中检测出手机越狱了,这结果报出来

让不让过?

56、使用GPS常驻后台服务,要我给出一个合适的理由,否则不往下审核,还好,解释一翻过去了。

57、出现“给我们五星好评”之类的文字。

58、应用内提到付费项目但木有通过苹果付费渠道(妄图不让苹果老大赚钱)

59、问我服务是不是只在IOS平台,还是同时支持多平台(我当然拥护苹果老大的领导,木有其他平台,iPhone专属)

60、地图应用,Google大神的LOGO没有显示。

61、google地图下面logo被一个UIView给遮挡了被拒。调整位置后ok

62、对不存在普遍比较标准的几类人进行比较和评判。不比人比动物后ok

63、上传通讯录没有通知。这个等了几个月,苹果的法律纠纷差不多了之后拒掉。然后加了提示后ok。

64、我写的英文App介绍审核人员看不懂,被拒。后然直接用中文。唉。

65、因为上行短信实现用户认证被拒

66、果测试人员的手机号在国外,因为收不到国内短信,被拒

67、他们打开我的一个APP测试,显示空白无内容,哈哈,因为他们相册里没有960*640的图,就说我该程序功能没开发完毕吧?然后我回了信,然后第二天就上架了。虽然这个小应用是极其简单的。
68、最蛋疼的是,提供了测试用户帐号密码,被我们某个手贱的测试人员测试修改密码的时候给改掉了。。。于是苹果登录不进来,于是杯具
69、IAP价格不能超过99美金(其中有一个是99.99美元,你妹啊!!!!!!!你麻痹多出0.99美金啊!!人家游戏都可以有啊!!!!为什么我们就不行啊!!!)
70、不能强迫用户注册(网络游戏啊亲!!你妹有直接登陆的按钮啊!!!不需要注册的啊!!试一下会shi啊!!!!)

71、support URL无法访问(草草草草草!!!那几天GFW抽风,海外访问国内网站有问题,你妹躲在香港的体谅一下大陆人民啊!!!)
72、没有生成Paid iOS合同(游戏内含IAP,好吧,这个是合作公司搞的乌龙,就不吐槽苹果了)
73、某微博客户端,提供了测试账号,被拒的理由是「账号登录不进去」,还有截屏,我一看,这不把我们提供的测试账号的最后两个字母写反了么…赶紧反馈,之后三天才继续审核,这三天真是太赔了。
74、某门户新闻客户端,免费应用,被拒的理由是「找不到in app purchase的项目对应的界面」,可是我们的应用跟本没有应用内支付,继续反馈…又等了三天…

2012/8/21补充
75、iPhone Human Interface Guidelines中指出了基本UI控件应该如何正确地使用。我们应该按照它的要求来检查Tab Bar、Navigation Bar和Alert View等控件是否符合Apple的口味。
76、确保应用不要模仿设备预装应用的样式和功能,如Music、iTunes Music Store和App Store等。这一条规则似乎是选择性实施的,因为许多浏览器和指南针类的应用都得到了批准。
77、不要加入过多脏话、无理由的性爱场面和吸毒场面。
78、不要对硬件按钮进行重新编程,赋予其它功能。例如,不要将音量按钮作为照相应用的快门键,不要将home键作为游戏中的开火键。

2012年/12/23补充
苹果拒绝获取iOS设备的App (推荐:《iOS设备的UDID是什么?苹果为什么拒绝获取iOS设备UDID的应用?如何替代UDID?》)
看完上面的各种原因,dApps建议各位开发者仔细阅读 Apple Review Guideline(苹果应用商店AppStore审核中文指南(译本))

2013年/2/27补充
苹果应用审查团队叫停Cookie追踪技术,凡是有开发者App使用“cookie追踪”技术的,请尽快想办法让其符合苹果的审查条件。

更多APP被苹果拒绝的原因,待补充。

=========================分隔线=========================

iOS inHouse App https发布官方教程

Distributing Apple Developer Enterprise Program Apps

点击下面的链接,然后使用申请好后的开发者账号直接登录即可。

https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/DistributingEnterpriseProgramApps/DistributingEnterpriseProgramApps.html#//apple_ref/doc/uid/TP40012582-CH33-SW1

 

别因为是英文文档就不愿意看了,请硬着头皮啃下去吧,对您帮助很大的!

 

iOS 应用安装失败原因排查

http://www.pgyer.com/doc/view/ios_install_failed

 

在 iOS 9 中运行企业版应用

http://www.pgyer.com/doc/view/inhouse_app_ios9

iOS开发证书相关资料合集

本文会不定期的收集一些写得非常不错的关于苹果开发者账号的文章,以供客户们阅读。

如果您有写得不错的关于苹果开发者账号的文章,请联系我们,QQ79392939,一经采用,会有现金奖励!

一、

iOS开发证书相关

http://superdanny.link/2015/09/24/iOS%E5%BC%80%E5%8F%91%E8%AF%81%E4%B9%A6%E7%9B%B8%E5%85%B3/

作者:SuperDanny

 

 

XCode编译器里有鬼 – XCodeGhost样本分析[转]

事情的起因是@唐巧_boy在微博上发了一条微博说到:一个朋友告诉我他们通过在非官方渠道下载的 Xcode 编译出来的 app 被注入了第三方的代码,会向一个网站上传数据,目前已知两个知名的 App 被注入。

具体原因,大家自已看http://drops.wooyun.org/news/8864

Xcode不要随意下载,容易被crack~

iresign/SeeTest 开发者账号 免费 重签名

1、准备一台mac电脑

2、申请苹果开发者账号(个人、公司、企业),申请链接http://appfish.taobao.com,如果是从本站看到的,请直接和客服联系,价格有优惠。

一、个人账号申请:https://item.taobao.com/item.htm?spm=a1z10.1-c.w4004-4601059148.11.2z5BdR&id=36162166668

二、公司账号申请:https://item.taobao.com/item.htm?spm=a1z10.1-c.w4004-4601059148.2.2z5BdR&id=36185792942

三、企业账号申请:https://item.taobao.com/item.htm?spm=a1z10.1-c.w4004-4601059148.5.2z5BdR&id=36176694668

 

3、配置开发者账号证书,请向客服索取配置开发者账号的视频教程。

4、iresign只能在mac下使用,seetest签名需要提供 provision文件,和开发者证书私钥和密码

5、推荐使用Command Line来进行签名,简单粗暴。具体步骤及命令行(红色字,绿色的为系统提示)如下:

第一步,把需要重新签名的ipa解压出来,可以更改ipa为zip直接解压,或者使用unzip 文件路径/文件名来解压.

第二步,先把你的mobileprovision文件改名为embedded.mobileprovision,放到对应的文件夹中,我这里的文件夹是Desktop/codesign/app.使用下面这条命令在桌面生成一个Entitlements.plist文件,将这个文件拷贝到codesign/app目录

lkbMacBook-Pro:~ lkb$ /usrbexec/PlistBuddy -x -c ‘Print :Entitlements’ /dev/stdin <<< `security cms -D -i ‘/Users/Liukaibo/Desktop/codesign/app/embedded.mobileprovision’` > ~/Desktop/Entitlements.plist

lkbMacBook-Pro:~ lkb$ codesign -f -s “iPhone Distribution: Nanjing YourComanyName Co., Ltd.” –entitlements=Entitlements.plist Payload/mobileMedicals.app

Payload/mobileMedicals.app: replacing existing signature

配置 好证书后,使用证书签名,签名成功后,会提示replacing existing signature的

第三步,打zip包,并在当前文件夹下生成newmobile.ipa文件

lkbMacBook-Pro:app lkb$ zip -qr newmobile.ipa Payload/

第四步,验证Payload中的包是否被正确签名:

lkbMacBook-Pro:app lkb$ codesign -vv -d Payload/mobileMedicals.app

 

6、原理讲解:ipa实际上是一个zip包,将ipa文件后缀改成zip后就可以解压缩这个包,解压缩成功后,您可以看一下具体文件和文件夹的目录层次结构。

先删除ipa包的原有签名,替换掉包内的签名证书文件后,重新签名,最后打包成ipa文件,即可安装。

 

7、参考文章:

Inside Code Signing,推荐英文好的可以看:https://www.objc.io/issues/17-security/inside-code-signing/

英文不好的可以看这篇翻译的:http://objccn.io/issue-17-2/

苹果的官方文档About Code Sign:https://developer.apple.com/library/mac/documentation/Security/Conceptual/CodeSigningGuide/Introduction/Introduction.html

上述如果有不明白的,可以参考这个哥们的blog,写得还不错

http://blog.csdn.net/gtncwy/article/details/10973285

 

iOS8正确访问mainBundle和自定义Bundle中子文件夹资源文件NSBundle

iOS8出来很久了,由于生意和工作的原因,一直没有仔细研究,最近空了下来,写一下最近碰到的一个小坑,希望对大家在NSBundle这一个东西上有所帮助,看清楚mainBundle中访问资源和自定义Bundle中访问资源的差别所在。

PS:本文涉及到控件的摆放,不清楚Auto Layout的同学,可以自已看一下苹果的官方文档和WWDC的视频,百度出来的这些教程,我实在受不了。。。最后还是自已硬啃英文文档才理解的。

请大家仔细理解标红的代码。

demo下载链接:http://pan.baidu.com/s/1kT9wUNl

进入正题:

一、新建一个Single View  Application工程,点击Next

 

新建singleview

二、项目名称TestBundle,主要演示mainBundle和自定义Bundle的区别。

输入项目名称

 

三、准备两组6张图,M表示Mainbundle加载的图片,C表示自定义Bundle加载的图片,分别命名为M.png,M@2x.png,M@3x.png和C.png,C@2x.png,C@3x.png,

M和C的1倍尺寸为60*60,@2x和@3x尺寸对应放大倍数即可

大家如果没有图的话,可以直接下载demo压缩包并解压,找到上述6张图片。

6张图片

 

四、将图片放入对应的文件夹中,并添加到项目中,新建Group,命名为images,然后将上述图片添加到images这个组,如下图

在项目中添加group并命名

 

五、Storyboard中的设置设置storyboard

 

六、ViewController.h中,将UIImageView连线并命名为imageMainBundle

@property (weak, nonatomic) IBOutlet UIImageView *imageMainBundle;

然后在ViewController.m中编辑viewDidLoad函数

– (void)viewDidLoad {
[super viewDidLoad];

// imageNamed:这个方法加载图片会有缓存,不适于大图片加截,建议频繁加载同一个小图片的操作时使用。
// UIImage *imgM = [UIImage imageNamed:@”M”];
// [_imageMainBundle setImage:imgM];

// 加载Mainbundle中的图片,推荐使用imageWithContentsOfFile:这个方法来加载图片,至于区别,请自行百度
NSString *strM = [[NSBundle mainBundle] pathForResource:@”M” ofType:@”png”];
UIImage *imgM = [UIImage imageWithContentsOfFile:strM];
[_imageMainBundle setImage:imgM];
}

运行后的效果图如下:

效果图1

 

七、接下来,自定义一个Bundle命名为Resources.bundle,并在Bundle中添加一个images的文件夹,然后把C.png等三张图片加入到该文件夹中。

添加bundle文件

 

八、删掉TestBundle文件夹中的C.png/C@2x.png/C@3x.png以及项目中的三张图片,项目中如下图所示

project视图

 

九、为了区别之前的mainbundle中的图片,我们再在storyboard上添加一个label和一个UIImageView,如下图:

Auto Layout2

 

 

Autolayout这一块,需要大家自已去体会理解,我自已也花了1天的时间看苹果的官方文档,另外专门花了1天的时间来理解、消化、实践。

十、连线ViewController.h,并声明一个imageCustomBundle的UIImageView变量。如下图:

@property (weak, nonatomic) IBOutlet UIImageView *imageCustomBundle;

IBAction

 

十一、ViewController.m
// 加载自定义名称为Resources.bundle中对应images文件夹中的图片
// 思路:从mainbundle中获取resources.bundle
NSString *strResourcesBundle = [[NSBundle mainBundle] pathForResource:@”Resources” ofType:@”bundle”];
// 找到对应images夹下的图片
NSString *strC = [[NSBundle bundleWithPath:strResourcesBundle] pathForResource:@”C” ofType:@”png” inDirectory:@”images”];
UIImage *imgC = [UIImage imageWithContentsOfFile:strC];
[_imageCustomBundle setImage:imgC];

 

执行后的效果:

效果图2

 

//  谋生广告,不喜勿看

//  淘宝店:http://appfish.taobao.com

//  主营:快速代理申请苹果开发者账号(个人、公司、企业)

//  如果觉得文章写得好,请收藏一下我们的店铺

//  如果有需要开发者账号的话,请直接和淘宝旺旺客服联系,谢谢>____<

//  我们的宗旨:我们从不刷单!

iOS6.0后,类似xxxFunction is deprecated编译警告warning处理。

最近在把一个iOS5.0的老项目升级到iOS7.1,发现在iOS6.0的时候,就有一些函数和枚举值被废弃。

那么在做版本兼容的时候,我们可以使用respondsToSelector这个函数,具体怎么使用就不多说了。

iOS6.0以下版本的函数、枚举(红色表示iOS6.0以上可用)

– (void)presentModalViewController:(UIViewController *)modalViewController animated:(BOOL)animated NS_DEPRECATED_IOS(2_0, 6_0);

– (void)presentViewController:(UIViewController *)viewControllerToPresent animated: (BOOL)flag completion:(void (^)(void))completion NS_AVAILABLE_IOS(5_0);

 

– (void)dismissModalViewControllerAnimated:(BOOL)animated NS_DEPRECATED_IOS(2_0, 6_0);

– (void)dismissViewControllerAnimated: (BOOL)flag completion: (void (^)(void))completion NS_AVAILABLE_IOS(5_0);

 

 

typedef NS_ENUM(NSInteger, UILineBreakMode) {

    UILineBreakModeWordWrap = 0,            // Wrap at word boundaries

    UILineBreakModeCharacterWrap,           // Wrap at character boundaries

    UILineBreakModeClip,                    // Simply clip when it hits the end of the rect

    UILineBreakModeHeadTruncation,          // Truncate at head of line: "…wxyz". Will truncate multiline text on first line

    UILineBreakModeTailTruncation,          // Truncate at tail of line: "abcd…". Will truncate multiline text on last line

    UILineBreakModeMiddleTruncation,        // Truncate middle of line:  "ab…yz". Will truncate multiline text in the middle

} NS_DEPRECATED_IOS(2_0,6_0);

 

 

typedef NS_ENUM(NSInteger, NSLineBreakMode) {        /* What to do with long lines */

    NSLineBreakByWordWrapping = 0,         /* Wrap at word boundaries, default */

    NSLineBreakByCharWrapping,        /* Wrap at character boundaries */

    NSLineBreakByClipping,        /* Simply clip */

    NSLineBreakByTruncatingHead,    /* Truncate at head of line: "…wxyz" */

    NSLineBreakByTruncatingTail,    /* Truncate at tail of line: "abcd…" */

    NSLineBreakByTruncatingMiddle    /* Truncate middle of line:  "ab…yz" */

} NS_ENUM_AVAILABLE_IOS(6_0);

 

// Deprecated: use NSTextAlignment enum in UIKit/NSText.h

typedef NS_ENUM(NSInteger, UITextAlignment) {

    UITextAlignmentLeft = 0,

    UITextAlignmentCenter,

    UITextAlignmentRight,                   // could add justified in future

} NS_DEPRECATED_IOS(2_0,6_0);

 

/* Values for NSTextAlignment */

typedef NS_ENUM(NSInteger, NSTextAlignment) {

    NSTextAlignmentLeft      = 0,    // Visually left aligned

#if TARGET_OS_IPHONE

    NSTextAlignmentCenter    = 1,    // Visually centered

    NSTextAlignmentRight     = 2,    // Visually right aligned

#else /* !TARGET_OS_IPHONE */

    NSTextAlignmentRight     = 1,    // Visually right aligned

    NSTextAlignmentCenter    = 2,    // Visually centered

#endif

    NSTextAlignmentJustified = 3,    // Fully-justified. The last line in a paragraph is natural-aligned.

    NSTextAlignmentNatural   = 4,    // Indicates the default alignment for script

} NS_ENUM_AVAILABLE_IOS(6_0);

iOS7 tintColor for navigationBar

    // for iOS7.0+

    float systemVersion = [[[UIDevice currentDevice] systemVersion] floatValue];

    if (systemVersion >= 7.0)

    {

        [self.navigationController.navigationBar setTintColor:[UIColor whiteColor]];

    }

iOS7 UIStatusBar 字体颜色设置

iOS7后,字体颜色默认只有白黑两种,可以自定义window的方式,不过比较麻烦,先不介绍。

此处以设置为白颜色为例。

一、直接在xxx-info.plist来设置

  • info.plist中添加View controller-based status bar appearance,设置为NO
  • info.plist中添加Status bar style,设置为Transparent black style (alpha of 0.5)

二、xxx-info.plist结合代码

  • info.plist中添加View controller-based status bar appearance,设置为NO
  • 在.m文件中加[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
  • 或者在.m文件中加以下代码

     

    //- (BOOL)prefersStatusBarHidden {

    //    return NO;

    //}

    //

    //- (UIStatusBarStyle)preferredStatusBarStyle {

    //    return UIStatusBarStyleLightContent;

    //}

原创:更改self.title中字体颜色及大小

解释:self.title为显示navigationController中间的标题文字.iOS5默认为白色,iOS7以后,默认为黑色。且没有直接修改的api

思路:获得当前navigationItem.titleView,强制转换为UILabel,然后做相应的颜色。

具体代码可以通过以下链接获得:

http://appfish.taobao.com

iOS7 更新适配

原文链接:http://www.raywenderlich.com/49316/how-to-update-your-app-for-ios-7

 

 

from:http://www.raywenderlich.com

这是一个非常好的学习、更新、了解iOS的网站,希望对大家在iOS开发过程中有所帮助!

iOS6.0后一些Rotations的变更

参考url:

点击链接打开

supportedInterfaceOrientationsForWindow:

Returns the default set of interface orientations to use for the view controllers in the specified window.

– (NSUInteger)supportedInterfaceOrientationsForWindow:(UIWindow *)window
Parameters
window

The window whose default interface orientations you want to retrieve.

Return Value

A bit mask specifying which orientations are supported. See “UIInterfaceOrientationMask” for valid bit-mask values. The value returned by this method must not be 0.

Discussion

This method returns the default interface orientations for the app. These orientations are used only for view controllers that do not specify their own. If your app delegate implements the application:supportedInterfaceOrientationsForWindow:method, the system does not call this method.

The default implementation of this method returns the app’s default set of supported interface orientations, as defined in the UISupportedInterfaceOrientations key of the Info.plist file. If the file does not contain that key, this method returns all interface orientations for the iPad idiom and returns all interface orientations except the portrait upside-down orientation for the iPhone idiom.

Availability
  • Available in iOS 6.0 and later.
Declared In

UIApplication.h

 

==========================================

参考URL:

点击链接打开