1.首先说下苹果开发者账号的申请:
下面就开始注册苹果ID并且通过交纳99美元,来获取一个官方授权的证书以便于你发布你的应用程序到IPHONE.
对于中国开发人员,打开如下图链接:
如果你已经拥有一个苹果ID,也可以不注册,不过,苹果建议你为开发专用的账号专门注册一个苹果ID。如图所示,点击注册。
我们就来到了下面这个图中所示的界面:点击 continue继续下一步。
这里,你可以选择是使用已经有的账号,还是创建一个,我们默认大家都需要创建一个新的账号。
来到这个注册表单,这里,我在图中做了详细的描述,这里的文字描述就省略了。
接下来,这个表单实际上是个调查性质的。如果你选择已经有的账号,登陆后,也会要求你填写这个表单。
接下来,同意条款。
验证邮件
注册ID成功
下面,我们就开始注册开发人员项目:
首先,打开这个链接:http://developer.apple.com/iphone/program/start/enroll/
继续下一步,这里,注意看到,这里是Enrollment而不再是注册了。另外我们这次就可以选择使用已经有的账号,因为刚才已经注册过了。
进入enroll界面:
选好你要的计划后:告诉你要99刀。
然后信用卡的名字,以及你的账单地址
总结一下你刚才填写的信息。
最后,同意协议。
如果你填写的是中国地址,他会给你一个PDF文件,让你填写,并且签字后,传真到美国的一个号码。
如果你填写的是一个美国地址或者英国地址,则会给你发送一封邮件确认后,再继续。
2.公司与个人账号的区别:
99美金个人用户
99美金团队:
审核多了企业资质认证,可以多开发者共享.(如何共享?)这个测试的时候如果有多个人的话,可以拆分多个子账户出来测试,对于测试方便点。也就是说一个AppleID对应于多个Devices ID。
区别:
99美元的是供个人开发使用,
99的为公司使用,可以自己定义一定数量的开发者子账号,不过只能有主账号来提交,发布等操作。
299的是供企业内部账号使用,外面用户不能使用itunes访问到。而且绑定认证次数无限
注意一点,公司和个人帐号都是99$一年;而299$那个是大企业专用,无法提交App到App Store,只能公司内部自用,比如基于iOS的OA系统
3.安装开发者证书:
这个是证书,我们先从这里一次开始向下 一步一步的配置。
点这里,会下载一个.cer的证书文件下来。。。
然后双击这个下载下来的证书,安装到登录钥匙串。。。
看到没有? 这个就是安装好后的证书。这个证书就不用管了。。。接着来
点击 钥匙串 - 》证书助理 - 从证书机构请求证书,然后下一步 下一步。。。 最后在桌面生成一个证书。
吧证书提交到网站上就可以了。
开始添加ios设备,这个很简单。。
左边随便写个名字,右边在xcode中得到序列号:
这个是创建apple id,也很简单。名字随便写。下面的按照格式写公司标示符。
我们现在做最后一步的配置,手机证书的配置:
名字随意取。然后是第一步配置的证书,然后是apple id 然后是绑定的设备。。。
我们吧这个证书下载下来。。。
看到没 这些就是我们安装在手机上的证书,如果没有第一个是不能调试的!第一个需要你吧手机设置为开发机才会自动创建。。。
点第一个按钮 就可以给手机添加为开发机。。。
这个是在info.plist里需要设置的公司标示符。和你appleid的必须一样。。。
这是最后一步。。。 设置证书,这样就可以真机调试了。
前提:已经成功申请了iOS开发者账号
环境:xcode 4.6.1 ; iOS 6.1.2
1、授权设备:
进入Apple Developer会员中心,点击图中的iOS Provisioning Portal,进入开发者授权设置系统:
在设置界面中,可以选择点击页面下方的助手来运行向导:
点击左侧导航的Device,进入授权设备的页面,点击右上方的Add Device按钮可以添加一个设备:
添加设备的时候可以指定设备的名字(随便写),以及设备的UDID。每一个Apple的设备都有一个唯一的标识符,获得这个标识符的方法很简单,有两种方式:
(1)将你的设备连接到电脑,然后在iTunes里找到你的设备信息(如下图),点击图中红色方框的位置,设备UDID就会显示出来。右击UDID会提示拷贝,将拷贝的结果复制到框内即可;
(2)打开xcode,window→organizer→devices,在里面可以看到identifier信息
2、添加App ID:
点击左侧导航的App IDs按钮可以进入应用程序ID的配置页面,可以点击页面右方的New App ID按钮添加一个新的应用。这个ID对应的是即将开发和测试的应用程序。如下图,在description里添加一个单一应用的名称(不支持特殊字符),然后在最下面的Bundle Seed ID里面填入一个含有domain格式的字符串(如com.bo.test)。Bundle Seed ID是一个集合了开发商与应用程序的信息,格式为(com.[开发商].[应用]),这里可以指定为单一应用,也可以指定为全部应用。如果是单一应用,建议刚才填写的description与Bundle Seed ID的最后一项相同(如test和com.bo.test),如果是全部应用,可以使用这样的Bundle Seed ID: com.bo.
3、添加证书:
(1)首先在mac电脑上生成开发者证书:
在Applications->Utilities里手动打开Keychain Access。按照下图操作最终点击“从证书颁发机构请求证书”
正确填写自己的邮箱和姓名即可,选择“存储到磁盘”,点击继续。最终会生成一个名为“CertificateSigningRequest.certSigningRequest”的文件。
这时候返回刚才的iOS Provisioning Portal网页界面,点击左侧的“Certificate”,点击页面右方的Request Certificate申请一个证书,然后点击页面下方的按钮上传生成的certSigningRequest文件,这样就完成了证书的申请流程。申请成功后,Certificate页面里就有了一条证书,刷新几次页面后证书的状态就变成Issued,点击download按钮可以下载一个cer文件。
4、使用开发者授权:
(1)回到iOS Provisioning Portal网页界面,点击左侧的“provisioning”,点击右侧的New Profile按钮创建一个新的授权文件:
填写profile Name;在Certificates中选择刚刚创建好的证书(一劳永逸的一步,之后只需勾选该证书即可,不必再手动添加);APP ID选择刚刚建的那个;Devices 选择刚刚添加的设备;Submit(绑定设备到应用程序);刷新页面,会看到刚刚建的那个后边有个Download,点击Download,下载了一个.mobileprovision文件。
(2)打开xcode→window→organizer,将下载的.mobileprovision文件拖到Provisioning中(此步骤绑定设备到应用程序,并生成证书)
(3)项目中的plist 文件,将Bundle Identifier 这一项的内容改成Bundle Seed ID(格式:com.[开发商].[应用])即可
将run按钮右边的设备选为对应的真机设备,接下来就编译运行看看吧!
4.提交到AppStore:
上传程序到AppStore上,遇到了很多问题,下面把在网上找的一些资料和处理问题的方法摘抄在一起.
1.首先要在itunesconnect.apple.com上面新建一个应用,并把描述什么的都写上,具体见网址http://www.cocoachina.com/bbs/read.php?tid-7923.html
2.之后要用Application Loader 上传你的程序, Application Loader,在 /Developer/Applications/Utilities 里就有。上面会显示你“Waiting For Upload”状态的程序,选择一个,并上传你压缩好的zip文件。上传成功之后itunesconnect.apple.com上面就变成了“Waiting For Review”状态。
遇到的问题如下:
1.当上传一半因为网络原因或者自己取消,重新上传时会提示“an existing transporter instance is currently uploading this package”。解决分为两种情况:
(1).如果是没传完的应用处于“waiting for review”状态,reject 后重新上传即可。有些同学可能找不到在哪reject。点击“view details”按钮,
Links
(2).如果此时应用处于“waiting for upload”状态,删除 ~/.itmstransporter/UploadTokens/ 目录内所有文件,即可重新上传。
2.上传zip文件时,提示:iPhone/iPod Touch: application executable is missing a required architecture. At least one of the following architecture(s) must be present: armv6处理办法,转载其他同学的解决办法。
截图如下:
产生这个错误,很是疑惑,尝试了几个办法,都失败了,无奈之下,只好求助伟大的stackoverflow。解决办法翻译如下:
如果你的xcode是4.2以上的版本的话,请尝试一下的解决办法:
1.点击你的项目名称(在左侧栏),之后点击Target:
2.点击'Build Settings' (在右侧栏):
3.打开‘Architectures’标签,点击名称为 'Release' 或者 'Distribution' 的行,选择'Other...':
4.双击名称为'$(ARCHS_STANDARD_32_BIT)'的行,使之成为可编辑状态,删除文字,输入armv6。再点击左下角的“+”号,在出现的栏中输入armv7。最后点击“done”按钮。
以上就是解决方法了,下面你再尝试“build/archive”就可能不会出现上述的错误信息了。
如果问题依旧,请尝试该链接this answer from justinxreese,就是在你的info.plist文件中的"Required Device Capabilities"加入全部的 armv6 和 armv7的信息。
stackoverflow的链接地址如下:http://stackoverflow.com/questions/4198676/warning-iphone-apps-should-include-an-armv6-architecture-even-with-build-config
3.还遇到UIBackgroundModes错误,解决办法找到工程中的App-info.plist,前缀不一定是这个,把Required background modes项的值填上,具体选项的解释引用其他同学的解释,其实不用在程序里面加,直接更改plist就可以了。
iOS从4.0之后支持后台播放声音了。下面是实现声音文件播放,并且用户关闭屏幕之后仍然能够播放声音文件。具体的实现方法如下:
在plist文件中加入下面的字段:
声明内容如下:
Info.plist中添加UIBackgroundModes键值,它包含一个或多个string的值,包括
audio:在后台提供声音播放功能,包括音频流和播放视频时的声音
location:在后台可以保持用户的位置信息
voip:在后台使用VOIP功能
在程序中添加:
AVAudioSession *session = [AVAudioSession sharedInstance];
[session setActive:YES error:nil];
[session setCategory:AVAudioSessionCategoryPlayback error:nil];
声明声音在后台运行。最后运行程序,关闭程序,声音则在后台成功播放。