
苹果应用上架后多久可以下载
OS上架
iOS APP上架App Store其中一个步骤就是要把ipa文件上传到App Store!
下面进行步骤介绍!
利用Appuploader这个软件,可以在Windows、Linux或Mac系统中申请ios和上传IPA到App Store Connect。
非常的方便,没有Mac也可以用Appuploader在Windows电脑上传ipa到App Store Connect后台。
Appuploader
1、因为苹果开发者账号现在都开通了双重认证,所以需要生成一个上传专用密码才能上传ipa文件。
打开网站
登录苹果开发者账号
登录进去找到安全项目,点击生成专用密码。
密码标签随便输入,123,app等之类的都行。
点击创建生成,(注意密码标签不是专用密码,是由苹果系统生成的一串密码)专用密码就是下面这个样子的密码,把这个密码复制,打开Appuploader
登录Appuploader软件,点击右上角,选择设置,把上传专用密码复制上去,同时勾选上保存密码 ,点击Save保存,然后再回去提交ipa上传就可以正常上传了。
6.1输入专用密码点击OK保存后,点击提交
6.2选择刚生成的ipa包
6.3Appuploader将自动上传你的IPA,包如果很大需要上传一段时间,当出现以下提示时(packages were uploaded successfully 进度条蓝色),说明上传成功。
6.4(这一步一定要认真看下文字说明,很多人这里理不清)
packages were uploaded successfully 进度条蓝色,ipa上传成功后 ,登录iTunes Connect 后台查看上传的ipa
进入APP,点击活动,所有构建版本选项(下图所示) ,这里会显示上传成功的构建版本,如果ipa包没问题刚上传会显示正在处理!
如果你发现没有出现构建版本 ,或者刷新一下构建版本消失了,出现这个问题说明你上传的这个ipa包有问题,苹果会发送具体原因到邮箱(开发者账号就是邮箱地址),登录邮箱查看反馈邮件,修改错误重新打包上传。
修改错误重新打包的时候记得加下版本号,比如你刚上传的是1.0版本,重新打包时增加下版本号如1.1,如果还是跟之前上传过相同的版本号的ipa文件,上传不了。
IOS开发工具官网地址 http://www.applicationloader.net/
最新版本已经优化了没支付688给apple的账号登录流程,无需再安装其他软件。 立即下载最新版本 在appuploader官网首页下载,如果您是windows电脑,则选择点击 windows版,如果是mac 电脑则选择 mac版 下载后解压到电脑中就安装完成了。
windows启动
windows系统里面,解压后双击appuploader.exe就可以直接运行了。 尽量不要放c盘,不要放带中文路径的盘。如果不行可以右击然后选择管理员运行试试。
mac和linux 电脑启动处理
如果是在mac或者linux电脑中,需要使用命令行,对appuploader修改权限。 在appuploader解压后的目录,打开命令行工具,执行下面的命令,使appuploader具备可执行权限。就可以双击启动了。
sudo chmod -R 777 ./*
不会命令行的也可以试试,把各项权限都改查可执行。 mac电脑修改文件权限
部分功能不可用处理
有些电脑可能会对runtime下的组件进行权限控制,导致无法调用组件,例如无法上传,可以双击运行下试试是否被系统权限阻止,正常会是一个黑色框一闪而过,如果系统提示权限错误,则放开权限,允许执行。
驱动安装
安装测试,自动读取设备udid需要安装苹果手机驱动,驱动下载地址。部分电脑缺少程序运行的基本库,可以安装驱动解决。下载后把文件夹内的exe都安装后重启工具。 下载apple手机驱动
如果是未支付688的apple账号,还需要安装icloud icloud下载地址:https://support.apple.com/zh-cn/HT204283 下载icloud
OS上架
iOS APP上架App Store其中一个步骤就是要把ipa文件上传到App Store!
下面进行步骤介绍!
利用Appuploader这个软件,可以在Windows、Linux或Mac系统中申请ios和上传IPA到App Store Connect。
非常的方便,没有Mac也可以用Appuploader在Windows电脑上传ipa到App Store Connect后台。
Appuploader
1、因为苹果开发者账号现在都开通了双重认证,所以需要生成一个上传专用密码才能上传ipa文件。
打开网站
登录苹果开发者账号
登录进去找到安全项目,点击生成专用密码。
密码标签随便输入,123,app等之类的都行。
点击创建生成,(注意密码标签不是专用密码,是由苹果系统生成的一串密码)专用密码就是下面这个样子的密码,把这个密码复制,打开Appuploader
登录Appuploader软件,点击右上角,选择设置,把上传专用密码复制上去,同时勾选上保存密码 ,点击Save保存,然后再回去提交ipa上传就可以正常上传了。
6.1输入专用密码点击OK保存后,点击提交
6.2选择刚生成的ipa包
6.3Appuploader将自动上传你的IPA,包如果很大需要上传一段时间,当出现以下提示时(packages were uploaded successfully 进度条蓝色),说明上传成功。
6.4(这一步一定要认真看下文字说明,很多人这里理不清)
packages were uploaded successfully 进度条蓝色,ipa上传成功后 ,登录iTunes Connect 后台查看上传的ipa
进入APP,点击活动,所有构建版本选项(下图所示) ,这里会显示上传成功的构建版本,如果ipa包没问题刚上传会显示正在处理!
如果你发现没有出现构建版本 ,或者刷新一下构建版本消失了,出现这个问题说明你上传的这个ipa包有问题,苹果会发送具体原因到邮箱(开发者账号就是邮箱地址),登录邮箱查看反馈邮件,修改错误重新打包上传。
修改错误重新打包的时候记得加下版本号,比如你刚上传的是1.0版本,重新打包时增加下版本号如1.1,如果还是跟之前上传过相同的版本号的ipa文件,上传不了。
IOS开发工具官网地址 http://www.applicationloader.net/
最新版本已经优化了没支付688给apple的账号登录流程,无需再安装其他软件。 立即下载最新版本 在appuploader官网首页下载,如果您是windows电脑,则选择点击 windows版,如果是mac 电脑则选择 mac版 下载后解压到电脑中就安装完成了。
windows启动
windows系统里面,解压后双击appuploader.exe就可以直接运行了。 尽量不要放c盘,不要放带中文路径的盘。如果不行可以右击然后选择管理员运行试试。
mac和linux 电脑启动处理
如果是在mac或者linux电脑中,需要使用命令行,对appuploader修改权限。 在appuploader解压后的目录,打开命令行工具,执行下面的命令,使appuploader具备可执行权限。就可以双击启动了。
sudo chmod -R 777 ./*
不会命令行的也可以试试,把各项权限都改查可执行。 mac电脑修改文件权限
部分功能不可用处理
有些电脑可能会对runtime下的组件进行权限控制,导致无法调用组件,例如无法上传,可以双击运行下试试是否被系统权限阻止,正常会是一个黑色框一闪而过,如果系统提示权限错误,则放开权限,允许执行。
驱动安装
安装测试,自动读取设备udid需要安装苹果手机驱动,驱动下载地址。部分电脑缺少程序运行的基本库,可以安装驱动解决。下载后把文件夹内的exe都安装后重启工具。 下载apple手机驱动
如果是未支付688的apple账号,还需要安装icloud icloud下载地址:https://support.apple.com/zh-cn/HT204283 下载icloud

软件开发入门教程网之C++ 信号处理
信号是由操作系统传给进程的中断,会提早终止一个程序。在 UNIX、LINUX、Mac OS X 或 Windows 系统上,可以通过按 Ctrl+C 产生中断。
有些信号不能被程序捕获,但是下表所列信号可以在程序中捕获,并可以基于信号采取适当的动作。这些信号是定义在 C++ 头文件 <csignal> 中。
信号
描述
SIGABRT
程序的异常终止,如调用 abort。
SIGFPE
错误的算术运算,比如除以零或导致溢出的操作。
SIGILL
检测非法指令。
SIGINT
程序终止(interrupt)信号。
SIGSEGV
非法访问内存。
SIGTERM
发送到程序的终止请求。
signal() 函数
C++ 信号处理库提供了 signal 函数,用来捕获突发事件。以下是 signal() 函数的语法:
void (signal (int sig, void (func)(int)))(int);这个看起来有点费劲,以下语法格式更容易理解:
signal(registered signal, signal handler)这个函数接收两个参数:第一个参数是一个整数,代表了信号的编号;第二个参数是一个指向信号处理函数的指针。
让我们编写一个简单的 C++ 程序,使用 signal() 函数捕获 SIGINT 信号。不管您想在程序中捕获什么信号,您都必须使用 signal 函数来注册信号,并将其与信号处理程序相关联。看看下面的实例:
实例
include <iostream>
include <csignal>
include <unistd.h>
using namespace std;
void signalHandler( int signum )
{
cout << "Interrupt signal (" << signum << ") received.\n";
// 清理并关闭
// 终止程序
exit(signum);
}
int main ()
{
// 注册信号 SIGINT 和信号处理程序
signal(SIGINT, signalHandler);
while(1){
cout << "Going to sleep...." << endl;
sleep(1);
}
return 0;
}当上面的代码被编译和执行时,它会产生下列结果:
Going to sleep....
Going to sleep....
Going to sleep....现在,按 Ctrl+C 来中断程序,您会看到程序捕获信号,程序打印如下内容并退出:
Going to sleep....
Going to sleep....
Going to sleep....
Interrupt signal (2) received.raise() 函数
您可以使用函数 raise() 生成信号,该函数带有一个整数信号编号作为参数,语法如下:
int raise (signal sig);在这里,sig 是要发送的信号的编号,这些信号包括:SIGINT、SIGABRT、SIGFPE、SIGILL、SIGSEGV、SIGTERM、SIGHUP。以下是我们使用 raise() 函数内部生成信号的实例:
实例
include <iostream>
include <csignal>
include <unistd.h>
using namespace std;
void signalHandler( int signum )
{
cout << "Interrupt signal (" << signum << ") received.\n";
// 清理并关闭
// 终止程序
exit(signum);
}
int main ()
{
int i = 0;
// 注册信号 SIGINT 和信号处理程序
signal(SIGINT, signalHandler);
while(++i){
cout << "Going to sleep...." << endl;
if( i == 3 ){
raise( SIGINT);
}
sleep(1);
}
return 0;
}当上面的代码被编译和执行时,它会产生下列结果,并会自动退出:
Going to sleep....
Going to sleep....
Going to sleep....
Interrupt signal (2) received.
信号是由操作系统传给进程的中断,会提早终止一个程序。在 UNIX、LINUX、Mac OS X 或 Windows 系统上,可以通过按 Ctrl+C 产生中断。
有些信号不能被程序捕获,但是下表所列信号可以在程序中捕获,并可以基于信号采取适当的动作。这些信号是定义在 C++ 头文件 <csignal> 中。
信号
描述
SIGABRT
程序的异常终止,如调用 abort。
SIGFPE
错误的算术运算,比如除以零或导致溢出的操作。
SIGILL
检测非法指令。
SIGINT
程序终止(interrupt)信号。
SIGSEGV
非法访问内存。
SIGTERM
发送到程序的终止请求。
signal() 函数
C++ 信号处理库提供了 signal 函数,用来捕获突发事件。以下是 signal() 函数的语法:
void (signal (int sig, void (func)(int)))(int);这个看起来有点费劲,以下语法格式更容易理解:
signal(registered signal, signal handler)这个函数接收两个参数:第一个参数是一个整数,代表了信号的编号;第二个参数是一个指向信号处理函数的指针。
让我们编写一个简单的 C++ 程序,使用 signal() 函数捕获 SIGINT 信号。不管您想在程序中捕获什么信号,您都必须使用 signal 函数来注册信号,并将其与信号处理程序相关联。看看下面的实例:
实例
include <iostream>
include <csignal>
include <unistd.h>
using namespace std;
void signalHandler( int signum )
{
cout << "Interrupt signal (" << signum << ") received.\n";
// 清理并关闭
// 终止程序
exit(signum);
}
int main ()
{
// 注册信号 SIGINT 和信号处理程序
signal(SIGINT, signalHandler);
while(1){
cout << "Going to sleep...." << endl;
sleep(1);
}
return 0;
}当上面的代码被编译和执行时,它会产生下列结果:
Going to sleep....
Going to sleep....
Going to sleep....现在,按 Ctrl+C 来中断程序,您会看到程序捕获信号,程序打印如下内容并退出:
Going to sleep....
Going to sleep....
Going to sleep....
Interrupt signal (2) received.raise() 函数
您可以使用函数 raise() 生成信号,该函数带有一个整数信号编号作为参数,语法如下:
int raise (signal sig);在这里,sig 是要发送的信号的编号,这些信号包括:SIGINT、SIGABRT、SIGFPE、SIGILL、SIGSEGV、SIGTERM、SIGHUP。以下是我们使用 raise() 函数内部生成信号的实例:
实例
include <iostream>
include <csignal>
include <unistd.h>
using namespace std;
void signalHandler( int signum )
{
cout << "Interrupt signal (" << signum << ") received.\n";
// 清理并关闭
// 终止程序
exit(signum);
}
int main ()
{
int i = 0;
// 注册信号 SIGINT 和信号处理程序
signal(SIGINT, signalHandler);
while(++i){
cout << "Going to sleep...." << endl;
if( i == 3 ){
raise( SIGINT);
}
sleep(1);
}
return 0;
}当上面的代码被编译和执行时,它会产生下列结果,并会自动退出:
Going to sleep....
Going to sleep....
Going to sleep....
Interrupt signal (2) received.

软件开发入门教程网之C++ 标准库
C++ 标准库可以分为两部分:
• 标准函数库: 这个库是由通用的、独立的、不属于任何类的函数组成的。函数库继承自 C 语言。
• 面向对象类库: 这个库是类及其相关函数的集合。
C++ 标准库包含了所有的 C 标准库,为了支持类型安全,做了一定的添加和修改。
标准函数库
标准函数库分为以下几类:
• 输入/输出 I/O
• 字符串和字符处理
• 数学
• 时间、日期和本地化
• 动态分配
• 其他
• 宽字符函数
面向对象类库
标准的 C++ 面向对象类库定义了大量支持一些常见操作的类,比如输入/输出 I/O、字符串处理、数值处理。面向对象类库包含以下内容:
• 标准的 C++ I/O 类
• String 类
• 数值类
• STL 容器类
• STL 算法
• STL 函数对象
• STL 迭代器
• STL 分配器
• 本地化库
• 异常处理类
• 杂项支持库
C++ 标准库可以分为两部分:
• 标准函数库: 这个库是由通用的、独立的、不属于任何类的函数组成的。函数库继承自 C 语言。
• 面向对象类库: 这个库是类及其相关函数的集合。
C++ 标准库包含了所有的 C 标准库,为了支持类型安全,做了一定的添加和修改。
标准函数库
标准函数库分为以下几类:
• 输入/输出 I/O
• 字符串和字符处理
• 数学
• 时间、日期和本地化
• 动态分配
• 其他
• 宽字符函数
面向对象类库
标准的 C++ 面向对象类库定义了大量支持一些常见操作的类,比如输入/输出 I/O、字符串处理、数值处理。面向对象类库包含以下内容:
• 标准的 C++ I/O 类
• String 类
• 数值类
• STL 容器类
• STL 算法
• STL 函数对象
• STL 迭代器
• STL 分配器
• 本地化库
• 异常处理类
• 杂项支持库

http://kxdang.com/topic/cplusplus/cpp-signal-handling.html
软件开发入门教程网之C++ 信号处理
信号是由操作系统传给进程的中断,会提早终止一个程序。在 UNIX、LINUX、Mac OS X 或 Windows 系统上,可以通过按 Ctrl+C 产生中断。
有些信号不能被程序捕获,但是下表所列信号可以在程序中捕获,并可以基于信号采取适当的动作。这些信号是定义在 C++ 头文件 <csignal> 中。
信号
描述
SIGABRT
程序的异常终止,如调用 abort。
SIGFPE
错误的算术运算,比如除以零或导致溢出的操作。
SIGILL
检测非法指令。
SIGINT
程序终止(interrupt)信号。
SIGSEGV
非法访问内存。
SIGTERM
发送到程序的终止请求。
signal() 函数
C++ 信号处理库提供了 signal 函数,用来捕获突发事件。以下是 signal() 函数的语法:
void (signal (int sig, void (func)(int)))(int);这个看起来有点费劲,以下语法格式更容易理解:
signal(registered signal, signal handler)这个函数接收两个参数:第一个参数是一个整数,代表了信号的编号;第二个参数是一个指向信号处理函数的指针。
让我们编写一个简单的 C++ 程序,使用 signal() 函数捕获 SIGINT 信号。不管您想在程序中捕获什么信号,您都必须使用 signal 函数来注册信号,并将其与信号处理程序相关联。看看下面的实例:
实例
include <iostream>
include <csignal>
include <unistd.h>
using namespace std;
void signalHandler( int signum )
{
cout << "Interrupt signal (" << signum << ") received.\n";
// 清理并关闭
// 终止程序
exit(signum);
}
int main ()
{
// 注册信号 SIGINT 和信号处理程序
signal(SIGINT, signalHandler);
while(1){
cout << "Going to sleep...." << endl;
sleep(1);
}
return 0;
}当上面的代码被编译和执行时,它会产生下列结果:
Going to sleep....
Going to sleep....
Going to sleep....现在,按 Ctrl+C 来中断程序,您会看到程序捕获信号,程序打印如下内容并退出:
Going to sleep....
Going to sleep....
Going to sleep....
Interrupt signal (2) received.raise() 函数
您可以使用函数 raise() 生成信号,该函数带有一个整数信号编号作为参数,语法如下:
int raise (signal sig);在这里,sig 是要发送的信号的编号,这些信号包括:SIGINT、SIGABRT、SIGFPE、SIGILL、SIGSEGV、SIGTERM、SIGHUP。以下是我们使用 raise() 函数内部生成信号的实例:
实例
include <iostream>
include <csignal>
include <unistd.h>
using namespace std;
void signalHandler( int signum )
{
cout << "Interrupt signal (" << signum << ") received.\n";
// 清理并关闭
// 终止程序
exit(signum);
}
int main ()
{
int i = 0;
// 注册信号 SIGINT 和信号处理程序
signal(SIGINT, signalHandler);
while(++i){
cout << "Going to sleep...." << endl;
if( i == 3 ){
raise( SIGINT);
}
sleep(1);
}
return 0;
}当上面的代码被编译和执行时,它会产生下列结果,并会自动退出:
Going to sleep....
Going to sleep....
Going to sleep....
Interrupt signal (2) received.
软件开发入门教程网之C++ 信号处理
信号是由操作系统传给进程的中断,会提早终止一个程序。在 UNIX、LINUX、Mac OS X 或 Windows 系统上,可以通过按 Ctrl+C 产生中断。
有些信号不能被程序捕获,但是下表所列信号可以在程序中捕获,并可以基于信号采取适当的动作。这些信号是定义在 C++ 头文件 <csignal> 中。
信号
描述
SIGABRT
程序的异常终止,如调用 abort。
SIGFPE
错误的算术运算,比如除以零或导致溢出的操作。
SIGILL
检测非法指令。
SIGINT
程序终止(interrupt)信号。
SIGSEGV
非法访问内存。
SIGTERM
发送到程序的终止请求。
signal() 函数
C++ 信号处理库提供了 signal 函数,用来捕获突发事件。以下是 signal() 函数的语法:
void (signal (int sig, void (func)(int)))(int);这个看起来有点费劲,以下语法格式更容易理解:
signal(registered signal, signal handler)这个函数接收两个参数:第一个参数是一个整数,代表了信号的编号;第二个参数是一个指向信号处理函数的指针。
让我们编写一个简单的 C++ 程序,使用 signal() 函数捕获 SIGINT 信号。不管您想在程序中捕获什么信号,您都必须使用 signal 函数来注册信号,并将其与信号处理程序相关联。看看下面的实例:
实例
include <iostream>
include <csignal>
include <unistd.h>
using namespace std;
void signalHandler( int signum )
{
cout << "Interrupt signal (" << signum << ") received.\n";
// 清理并关闭
// 终止程序
exit(signum);
}
int main ()
{
// 注册信号 SIGINT 和信号处理程序
signal(SIGINT, signalHandler);
while(1){
cout << "Going to sleep...." << endl;
sleep(1);
}
return 0;
}当上面的代码被编译和执行时,它会产生下列结果:
Going to sleep....
Going to sleep....
Going to sleep....现在,按 Ctrl+C 来中断程序,您会看到程序捕获信号,程序打印如下内容并退出:
Going to sleep....
Going to sleep....
Going to sleep....
Interrupt signal (2) received.raise() 函数
您可以使用函数 raise() 生成信号,该函数带有一个整数信号编号作为参数,语法如下:
int raise (signal sig);在这里,sig 是要发送的信号的编号,这些信号包括:SIGINT、SIGABRT、SIGFPE、SIGILL、SIGSEGV、SIGTERM、SIGHUP。以下是我们使用 raise() 函数内部生成信号的实例:
实例
include <iostream>
include <csignal>
include <unistd.h>
using namespace std;
void signalHandler( int signum )
{
cout << "Interrupt signal (" << signum << ") received.\n";
// 清理并关闭
// 终止程序
exit(signum);
}
int main ()
{
int i = 0;
// 注册信号 SIGINT 和信号处理程序
signal(SIGINT, signalHandler);
while(++i){
cout << "Going to sleep...." << endl;
if( i == 3 ){
raise( SIGINT);
}
sleep(1);
}
return 0;
}当上面的代码被编译和执行时,它会产生下列结果,并会自动退出:
Going to sleep....
Going to sleep....
Going to sleep....
Interrupt signal (2) received.

软件开发入门教程网之C++ 引用
引用变量是一个别名,也就是说,它是某个已存在变量的另一个名字。一旦把引用初始化为某个变量,就可以使用该引用名称或变量名称来指向变量。
C++ 引用 vs 指针
引用很容易与指针混淆,它们之间有三个主要的不同:
• 不存在空引用。引用必须连接到一块合法的内存。
• 一旦引用被初始化为一个对象,就不能被指向到另一个对象。指针可以在任何时候指向到另一个对象。
• 引用必须在创建时被初始化。指针可以在任何时间被初始化。
C++ 中创建引用
试想变量名称是变量附属在内存位置中的标签,您可以把引用当成是变量附属在内存位置中的第二个标签。因此,您可以通过原始变量名称或引用来访问变量的内容。例如:
int i = 17;我们可以为 i 声明引用变量,如下所示:
int& r = i;
double& s = d;在这些声明中,& 读作引用。因此,第一个声明可以读作 "r 是一个初始化为 i 的整型引用",第二个声明可以读作 "s 是一个初始化为 d 的 double 型引用"。下面的实例使用了 int 和 double 引用:
实例
include <iostream>
using namespace std;
int main ()
{
// 声明简单的变量
int i;
double d;
// 声明引用变量
int& r = i;
double& s = d;
i = 5;
cout << "Value of i : " << i << endl;
cout << "Value of i reference : " << r << endl;
d = 11.7;
cout << "Value of d : " << d << endl;
cout << "Value of d reference : " << s << endl;
return 0;
}当上面的代码被编译和执行时,它会产生下列结果:
Value of i : 5
Value of i reference : 5
Value of d : 11.7
Value of d reference : 11.7引用通常用于函数参数列表和函数返回值。下面列出了 C++ 程序员必须清楚的两个与 C++ 引用相关的重要概念:
概念
描述
把引用作为参数
C++ 支持把引用作为参数传给函数,这比传一般的参数更安全。
把引用作为返回值
可以从 C++ 函数中返回引用,就像返回其他数据类型一样。
引用变量是一个别名,也就是说,它是某个已存在变量的另一个名字。一旦把引用初始化为某个变量,就可以使用该引用名称或变量名称来指向变量。
C++ 引用 vs 指针
引用很容易与指针混淆,它们之间有三个主要的不同:
• 不存在空引用。引用必须连接到一块合法的内存。
• 一旦引用被初始化为一个对象,就不能被指向到另一个对象。指针可以在任何时候指向到另一个对象。
• 引用必须在创建时被初始化。指针可以在任何时间被初始化。
C++ 中创建引用
试想变量名称是变量附属在内存位置中的标签,您可以把引用当成是变量附属在内存位置中的第二个标签。因此,您可以通过原始变量名称或引用来访问变量的内容。例如:
int i = 17;我们可以为 i 声明引用变量,如下所示:
int& r = i;
double& s = d;在这些声明中,& 读作引用。因此,第一个声明可以读作 "r 是一个初始化为 i 的整型引用",第二个声明可以读作 "s 是一个初始化为 d 的 double 型引用"。下面的实例使用了 int 和 double 引用:
实例
include <iostream>
using namespace std;
int main ()
{
// 声明简单的变量
int i;
double d;
// 声明引用变量
int& r = i;
double& s = d;
i = 5;
cout << "Value of i : " << i << endl;
cout << "Value of i reference : " << r << endl;
d = 11.7;
cout << "Value of d : " << d << endl;
cout << "Value of d reference : " << s << endl;
return 0;
}当上面的代码被编译和执行时,它会产生下列结果:
Value of i : 5
Value of i reference : 5
Value of d : 11.7
Value of d reference : 11.7引用通常用于函数参数列表和函数返回值。下面列出了 C++ 程序员必须清楚的两个与 C++ 引用相关的重要概念:
概念
描述
把引用作为参数
C++ 支持把引用作为参数传给函数,这比传一般的参数更安全。
把引用作为返回值
可以从 C++ 函数中返回引用,就像返回其他数据类型一样。

App 中使用webview 跳转第三方提供的支付宝H5,打开支付宝失败
App 中使用webview 跳转第三方提供的支付宝H5, H5中有调用下载支付宝与跳转支付宝功能,经过测试安卓可以跳转,ios无法跳转,两端都可进行下载操作。请问问题可能是出在哪块?ios端浏览器已做过测试,只有qq浏览器不能跳转,其他正常
App 中使用webview 跳转第三方提供的支付宝H5, H5中有调用下载支付宝与跳转支付宝功能,经过测试安卓可以跳转,ios无法跳转,两端都可进行下载操作。请问问题可能是出在哪块?ios端浏览器已做过测试,只有qq浏览器不能跳转,其他正常

ios新游上架
当我们开发完app后,需要将ipa/ap【上传IPA】使用一门Ipa上传小助手把安装包上传到appstoreconnect等待审核 专用密码上传IPA
IPA上传小助手可以在windows环境下把IPA上传到appuploader。
1.登录软件,点击上传按钮
当然了,如果您的账号更新过双重验证,提升过账号安全等级,这里必须使用苹果APP上传专用密码才可以成功
相关教程:
上传ipa包到Itunes connect 需要专用密码 设置app-specific password教程
2.点击【立即上传IPA文件】之后会弹出文件选择,如果电脑安装了360防护软件,会有一个网络访问的安全提示
这里直接允许即可
3.在弹出的选择文件夹,找到本地需要上传的IPA文件
选中文件之后,点击【打开】即可开始上传
如果账户升级过,一定要使用IPA上传专用密码,不然会报错:Error Messages: Sign in with the app-specific password you generated. If you forgot the app-specific password or need to create a new one, go to appleid.apple.com
(没用使用app专用密码的错误演示图,可以忽略这步)
如果已经创建了专用密码,那么软件会自动弹出专用密码框,使用生成的专用密码输入即可。
4.输入APP专用密码上传IPA包到appuploader
在输入框内输入APP上传专用密码,之后点击完成
之后便开始上传了,上传根据安装包IPA的大小不定,以及苹果服务器网速而定,有时候快,有时候慢
软件运行期间,请耐心等待
到此,IPA就上传成功了,大概等待10多分钟,就可以在市场看到刚才上传的版本信息了k提交给测试人员测试,然后才能上线。下面就来看一下如何打包ipa文件,并上传托管平台。
做过ios开发的童鞋都知道,ios为开发者提供了描述文件有2类,有说是3种(说的是iOS App):在Development类下就一种,用于真机调试Debug模式的描述文件;然而在Distribution类下,有2种描述文件。正常情况下,我们会使用App Store——Create a distribution provisioning profile to submit your app to the App Store,来上传包文件到应用市场。另一种是用Ad Hoc——Create a distribution provisioning profile to install your app on a limited number of registered devices。看意思就很清楚,前者用于提交你的APP到APPstore时使用,而后者用于安装你的应用到有限数量的已注册的设备上。而本文要讲的就是第二种了。
Ad Hoc打包
1、创建描述文件
首先,你要是一个开发者,并且有相关证书,然后就可以创建一个Ad Hoc 的描述文件了。然后按照下面的步骤依次选择选择Provisioning Profiles ->All->点击+号。
选择想要安装的测试设备:
然后取个名字,以示区分。
然后下载描述文件。
找到下载文件,双击安装到Xcode ,双击时看到闪一下就说明安装成功了。如果Xcode 是打开的,界面会跳转到Xcode界面。
2、证书签名
在Xcode7之前,真机调试和打包ipa是必须要签名的,但是Xcode7之后,真机调试不需要签名了。但是如果要在其他的机子上安装还是要打签名包的。 签名打包就是在编译的过程中加入证书签名,那肯定是需要去Xcode中配置的,目前网上有方法能实现企业级证书打包签名不需要在编译时,而在编译之后。因此现在打包有两种方式: a、在Xcode中配置code sign,实现签名打包ipa。适用于企业级账号证书、个人账号证书。
在Build Setting下,在code signing里,Code signing Identity依然按照Debug时使用开发证书,Release时使用发布证书;对于描述文件,Provisioning Profile按照Debug时使用开发证书生成的描述文件,而Release使用发布证书生成的描述文件,只是当你选择Distribution时,一定要选测Ad Hoc.
当然,Xcode 9 是可以选择自动配置描述文件的。
b、第二种方式是,在Xcode中无证书打包ipa,使用他人的账号签名ipa。
3.打Xcode证书签名打包
设置有效的Archive配置,如下图所示,这里面一定要选择复制“Release”。
然后取个名字ADHoc。
这里选择刚才复制“Release”的AdHoc,当然你也可以不做第1步,这里直接选择“Release”也是可以的,添加AdHoc纯粹是为了区分,方便管理。
4、Archive 打包
打包之前我们要将编译设备,设置成iOS Device 。 选择Generic ios Device,如果选择其他模拟器是不能Archive的,你会发现他是灰的。
先编译下command +B,没错的话执行Archive打包。
这时候选择save for Ad Hoc,上传到appStore。
成功后,选择你想安装的设备上,前提是这些设备已经注册了,如果没有设备的话,请去注册.
然后导出到桌面。
证书我们这边可以借助辅助工具appuploader
Appuploader可以辅助在Windows、linux或mac系统直接申请iOS证书p12,及上传ipa到App Store,最方便在Windows开发上架没有苹果Mac电脑的开发者!配合本教程使用,可以快速掌握如何真机测试及上架!
点击苹果证书按钮
点击新增
输入证书密码,名称
这个密码不是账号密码,而是一个保护证书的密码,是p12文件的密码,此密码设置后没有其他地方可以找到,忘记了只能删除证书重新制作,所以请务必记住密码。还有为了安全起见,密码不要太简单。 证书名称是你为了在证书列表里面便于区别的一个字符,自己好辨识就可以,尽量是是字母和数字之类
选择证书类型
带distribution的是发布类型,带development的是开发类型。
apple类型=ios+mac,所以开发时选择ios app development和apple development 类型都是可以的
选择bundle id
只有部分类型的证书需要选择bundle id,例如推送证书。因为大部分证书是不和app关联的。而是通过描述文件profile文件关联app。
使用appuploader同步服务
如果期望制作好证书后在其他电脑上同样可以下载到这个证书,或者和你同事同步此证书,则需要勾选使用appuploader服务同步。否则您需要手动管理p12文件在不同电脑之间的传输,并且一但创建下载后,无法在其他电脑下载,只能手动复制文件过去。一般情况下,推荐使用appuploader服务同步。
证书类型说明
IOS开发选择apple development或者ios app development 类型 ios 发布选择 apple distribution或者 ios distribution (app store and ad hoc) 开发推送证书选择 apple push notification service ssl (sandbox) 发布推送证书选择 apple push notification service ssl (sandbox & production)
其他证书不是很常用,可以自行百度各种证书说明
当我们开发完app后,需要将ipa/ap【上传IPA】使用一门Ipa上传小助手把安装包上传到appstoreconnect等待审核 专用密码上传IPA
IPA上传小助手可以在windows环境下把IPA上传到appuploader。
1.登录软件,点击上传按钮
当然了,如果您的账号更新过双重验证,提升过账号安全等级,这里必须使用苹果APP上传专用密码才可以成功
相关教程:
上传ipa包到Itunes connect 需要专用密码 设置app-specific password教程
2.点击【立即上传IPA文件】之后会弹出文件选择,如果电脑安装了360防护软件,会有一个网络访问的安全提示
这里直接允许即可
3.在弹出的选择文件夹,找到本地需要上传的IPA文件
选中文件之后,点击【打开】即可开始上传
如果账户升级过,一定要使用IPA上传专用密码,不然会报错:Error Messages: Sign in with the app-specific password you generated. If you forgot the app-specific password or need to create a new one, go to appleid.apple.com
(没用使用app专用密码的错误演示图,可以忽略这步)
如果已经创建了专用密码,那么软件会自动弹出专用密码框,使用生成的专用密码输入即可。
4.输入APP专用密码上传IPA包到appuploader
在输入框内输入APP上传专用密码,之后点击完成
之后便开始上传了,上传根据安装包IPA的大小不定,以及苹果服务器网速而定,有时候快,有时候慢
软件运行期间,请耐心等待
到此,IPA就上传成功了,大概等待10多分钟,就可以在市场看到刚才上传的版本信息了k提交给测试人员测试,然后才能上线。下面就来看一下如何打包ipa文件,并上传托管平台。
做过ios开发的童鞋都知道,ios为开发者提供了描述文件有2类,有说是3种(说的是iOS App):在Development类下就一种,用于真机调试Debug模式的描述文件;然而在Distribution类下,有2种描述文件。正常情况下,我们会使用App Store——Create a distribution provisioning profile to submit your app to the App Store,来上传包文件到应用市场。另一种是用Ad Hoc——Create a distribution provisioning profile to install your app on a limited number of registered devices。看意思就很清楚,前者用于提交你的APP到APPstore时使用,而后者用于安装你的应用到有限数量的已注册的设备上。而本文要讲的就是第二种了。
Ad Hoc打包
1、创建描述文件
首先,你要是一个开发者,并且有相关证书,然后就可以创建一个Ad Hoc 的描述文件了。然后按照下面的步骤依次选择选择Provisioning Profiles ->All->点击+号。
选择想要安装的测试设备:
然后取个名字,以示区分。
然后下载描述文件。
找到下载文件,双击安装到Xcode ,双击时看到闪一下就说明安装成功了。如果Xcode 是打开的,界面会跳转到Xcode界面。
2、证书签名
在Xcode7之前,真机调试和打包ipa是必须要签名的,但是Xcode7之后,真机调试不需要签名了。但是如果要在其他的机子上安装还是要打签名包的。 签名打包就是在编译的过程中加入证书签名,那肯定是需要去Xcode中配置的,目前网上有方法能实现企业级证书打包签名不需要在编译时,而在编译之后。因此现在打包有两种方式: a、在Xcode中配置code sign,实现签名打包ipa。适用于企业级账号证书、个人账号证书。
在Build Setting下,在code signing里,Code signing Identity依然按照Debug时使用开发证书,Release时使用发布证书;对于描述文件,Provisioning Profile按照Debug时使用开发证书生成的描述文件,而Release使用发布证书生成的描述文件,只是当你选择Distribution时,一定要选测Ad Hoc.
当然,Xcode 9 是可以选择自动配置描述文件的。
b、第二种方式是,在Xcode中无证书打包ipa,使用他人的账号签名ipa。
3.打Xcode证书签名打包
设置有效的Archive配置,如下图所示,这里面一定要选择复制“Release”。
然后取个名字ADHoc。
这里选择刚才复制“Release”的AdHoc,当然你也可以不做第1步,这里直接选择“Release”也是可以的,添加AdHoc纯粹是为了区分,方便管理。
4、Archive 打包
打包之前我们要将编译设备,设置成iOS Device 。 选择Generic ios Device,如果选择其他模拟器是不能Archive的,你会发现他是灰的。
先编译下command +B,没错的话执行Archive打包。
这时候选择save for Ad Hoc,上传到appStore。
成功后,选择你想安装的设备上,前提是这些设备已经注册了,如果没有设备的话,请去注册.
然后导出到桌面。
证书我们这边可以借助辅助工具appuploader
Appuploader可以辅助在Windows、linux或mac系统直接申请iOS证书p12,及上传ipa到App Store,最方便在Windows开发上架没有苹果Mac电脑的开发者!配合本教程使用,可以快速掌握如何真机测试及上架!
点击苹果证书按钮
点击新增
输入证书密码,名称
这个密码不是账号密码,而是一个保护证书的密码,是p12文件的密码,此密码设置后没有其他地方可以找到,忘记了只能删除证书重新制作,所以请务必记住密码。还有为了安全起见,密码不要太简单。 证书名称是你为了在证书列表里面便于区别的一个字符,自己好辨识就可以,尽量是是字母和数字之类
选择证书类型
带distribution的是发布类型,带development的是开发类型。
apple类型=ios+mac,所以开发时选择ios app development和apple development 类型都是可以的
选择bundle id
只有部分类型的证书需要选择bundle id,例如推送证书。因为大部分证书是不和app关联的。而是通过描述文件profile文件关联app。
使用appuploader同步服务
如果期望制作好证书后在其他电脑上同样可以下载到这个证书,或者和你同事同步此证书,则需要勾选使用appuploader服务同步。否则您需要手动管理p12文件在不同电脑之间的传输,并且一但创建下载后,无法在其他电脑下载,只能手动复制文件过去。一般情况下,推荐使用appuploader服务同步。
证书类型说明
IOS开发选择apple development或者ios app development 类型 ios 发布选择 apple distribution或者 ios distribution (app store and ad hoc) 开发推送证书选择 apple push notification service ssl (sandbox) 发布推送证书选择 apple push notification service ssl (sandbox & production)
其他证书不是很常用,可以自行百度各种证书说明

background-color: currentColor;
background-color: currentColor;
currentColor:当前元素的文字颜色。
background-color: currentColor;
currentColor:当前元素的文字颜色。

Iosapp上架流程
在使用H5混合开发的app打包后,需要将ipa文件上传到appstore进行发布,就需要去苹果开发者中心进行发布。
但是在苹果开发者中心无法直接上传ipa文件,它要求我们使用xcode或transport等工具上传ipa文件,但是xcode和transport不能安装在windows电脑。
因此,我们需要使用其他第三方的工具来上传ipa文件,我们做H5开发上传ipa到苹果开发者中心,可以使用appuploader来上传。
工具地址:http://www.appuploader.net/
详细上传流程如下:
1、登录苹果开发者中心,进入app store connect页面,假如还没有创建app,则需要创建app
2、点击进app,创建版本发布
3、这时候它提示我们要选一个文件,但是我们点蓝色加号却没有文件可以选,右边它提示的工具只能安装在mac电脑,这时候我们就需要使用香蕉云编来上传ipa文件:
http://www.appuploader.net/
登录进appuploader上传ipa的控制台,点击上传新文件:
4、上传的时候提示我们需要填写专用密码,不能填登录密码哦,假如你不知道专用密码如何获取,可查看最后两步:
这样,等待几分钟就可以上传成功了。上传成功后,大概过25分钟左右,就可以在构建版本里见到。
假如你还没有设置专用密码,可以在苹果开发者中心的下图的这个地方进入设置专用密码:
登录apple id的安全管理页面里设置或获取专用密码。
证书我们这边可以借助辅助工具appuploader
Appuploader可以辅助在Windows、linux或mac系统直接申请iOS证书p12,及上传ipa到App Store,最方便在Windows开发上架没有苹果Mac电脑的开发者!配合本教程使用,可以快速掌握如何真机测试及上架!
点击苹果证书按钮
点击新增
输入证书密码,名称
这个密码不是账号密码,而是一个保护证书的密码,是p12文件的密码,此密码设置后没有其他地方可以找到,忘记了只能删除证书重新制作,所以请务必记住密码。还有为了安全起见,密码不要太简单。 证书名称是你为了在证书列表里面便于区别的一个字符,自己好辨识就可以,尽量是是字母和数字之类
选择证书类型
带distribution的是发布类型,带development的是开发类型。
apple类型=ios+mac,所以开发时选择ios app development和apple development 类型都是可以的
选择bundle id
只有部分类型的证书需要选择bundle id,例如推送证书。因为大部分证书是不和app关联的。而是通过描述文件profile文件关联app。
使用appuploader同步服务
如果期望制作好证书后在其他电脑上同样可以下载到这个证书,或者和你同事同步此证书,则需要勾选使用appuploader服务同步。否则您需要手动管理p12文件在不同电脑之间的传输,并且一但创建下载后,无法在其他电脑下载,只能手动复制文件过去。一般情况下,推荐使用appuploader服务同步。
证书类型说明
IOS开发选择apple development或者ios app development 类型 ios 发布选择 apple distribution或者 ios distribution (app store and ad hoc) 开发推送证书选择 apple push notification service ssl (sandbox) 发布推送证书选择 apple push notification service ssl (sandbox & production)
其他证书不是很常用,可以自行百度各种证书说明
在使用H5混合开发的app打包后,需要将ipa文件上传到appstore进行发布,就需要去苹果开发者中心进行发布。
但是在苹果开发者中心无法直接上传ipa文件,它要求我们使用xcode或transport等工具上传ipa文件,但是xcode和transport不能安装在windows电脑。
因此,我们需要使用其他第三方的工具来上传ipa文件,我们做H5开发上传ipa到苹果开发者中心,可以使用appuploader来上传。
工具地址:http://www.appuploader.net/
详细上传流程如下:
1、登录苹果开发者中心,进入app store connect页面,假如还没有创建app,则需要创建app
2、点击进app,创建版本发布
3、这时候它提示我们要选一个文件,但是我们点蓝色加号却没有文件可以选,右边它提示的工具只能安装在mac电脑,这时候我们就需要使用香蕉云编来上传ipa文件:
http://www.appuploader.net/
登录进appuploader上传ipa的控制台,点击上传新文件:
4、上传的时候提示我们需要填写专用密码,不能填登录密码哦,假如你不知道专用密码如何获取,可查看最后两步:
这样,等待几分钟就可以上传成功了。上传成功后,大概过25分钟左右,就可以在构建版本里见到。
假如你还没有设置专用密码,可以在苹果开发者中心的下图的这个地方进入设置专用密码:
登录apple id的安全管理页面里设置或获取专用密码。
证书我们这边可以借助辅助工具appuploader
Appuploader可以辅助在Windows、linux或mac系统直接申请iOS证书p12,及上传ipa到App Store,最方便在Windows开发上架没有苹果Mac电脑的开发者!配合本教程使用,可以快速掌握如何真机测试及上架!
点击苹果证书按钮
点击新增
输入证书密码,名称
这个密码不是账号密码,而是一个保护证书的密码,是p12文件的密码,此密码设置后没有其他地方可以找到,忘记了只能删除证书重新制作,所以请务必记住密码。还有为了安全起见,密码不要太简单。 证书名称是你为了在证书列表里面便于区别的一个字符,自己好辨识就可以,尽量是是字母和数字之类
选择证书类型
带distribution的是发布类型,带development的是开发类型。
apple类型=ios+mac,所以开发时选择ios app development和apple development 类型都是可以的
选择bundle id
只有部分类型的证书需要选择bundle id,例如推送证书。因为大部分证书是不和app关联的。而是通过描述文件profile文件关联app。
使用appuploader同步服务
如果期望制作好证书后在其他电脑上同样可以下载到这个证书,或者和你同事同步此证书,则需要勾选使用appuploader服务同步。否则您需要手动管理p12文件在不同电脑之间的传输,并且一但创建下载后,无法在其他电脑下载,只能手动复制文件过去。一般情况下,推荐使用appuploader服务同步。
证书类型说明
IOS开发选择apple development或者ios app development 类型 ios 发布选择 apple distribution或者 ios distribution (app store and ad hoc) 开发推送证书选择 apple push notification service ssl (sandbox) 发布推送证书选择 apple push notification service ssl (sandbox & production)
其他证书不是很常用,可以自行百度各种证书说明

iOSApp上架流程
注意:下载AU后需安装java8运行环境才能启动;安装好了最新Java8运行环境,解压AU软件包,无需安装,Windows 64位系统点击appuploader.exe启动;如果是Linux/Windows 32位系统或Mac系统双击appuploader.jar即可启动;直接用苹果账号即可登录使用
注意:appuploader并不是免费的,他只可以试用一个月,一个月之后可以点击激活进行付费
如果开启了手机验证码登录,获取验证码输入登录,在手机短信或者苹果手机直接弹出验证码 Appuploader可以很方便的直接在Windows电脑申请证书和管理证书,上传ipa文件,不需要苹果电脑;初次接触Appuploader的伙伴,通过以下介绍,清晰Appuploader的具体用法。
首页功能
页头的快捷功能,可以直接点击进入苹果开发者中心,iTunes Connect,上架要登录这些网站,可以很方便的进入;也可以直接进入Appuploader的官网,查看证书申请,真机调试上架等详细教程
证书功能
p12模块,有ID/名称/证书类型/过期时间/下载功能显示
1.id是证书的一个编码
2.名称,推送证书会显示appid,其他证书显示账号的名称
3.证书类型/发布证书(iOS Distribution),开发证书(iOS Development),开发推送证书(APNs Development iOS),发布推送证书(Apple Push Services)
4.过期时间,证书是一年有效期,到期重新申请
5.下载,可以直接下载p12文件,直接到开发工具打包
证书功能,描述文件模块
描述文件类型;发布描述文件(iOS Distribution),开发描述文件(iOS Development)
Active这个显示说明证书有效,如果是Invalid说明证书失效了,删除重新创建
上传ipa功能
点击提交,选择要上架的ipa就行了 点击右上角,设置,可以设置为保存密码,这样不用每次登陆都输入密码 iOS证书申请和真机调试测试,上架App Store的请查看详细教程,结合Appuploader使用,快速的帮助测试app和上架app
证书我们这边可以借助辅助工具appuploader
Appuploader可以辅助在Windows、linux或mac系统直接申请iOS证书p12,及上传ipa到App Store,最方便在Windows开发上架没有苹果Mac电脑的开发者!配合本教程使用,可以快速掌握如何真机测试及上架!
点击苹果证书按钮
点击新增
输入证书密码,名称
这个密码不是账号密码,而是一个保护证书的密码,是p12文件的密码,此密码设置后没有其他地方可以找到,忘记了只能删除证书重新制作,所以请务必记住密码。还有为了安全起见,密码不要太简单。 证书名称是你为了在证书列表里面便于区别的一个字符,自己好辨识就可以,尽量是是字母和数字之类
选择证书类型
带distribution的是发布类型,带development的是开发类型。
apple类型=ios+mac,所以开发时选择ios app development和apple development 类型都是可以的
选择bundle id
只有部分类型的证书需要选择bundle id,例如推送证书。因为大部分证书是不和app关联的。而是通过描述文件profile文件关联app。
使用appuploader同步服务
如果期望制作好证书后在其他电脑上同样可以下载到这个证书,或者和你同事同步此证书,则需要勾选使用appuploader服务同步。否则您需要手动管理p12文件在不同电脑之间的传输,并且一但创建下载后,无法在其他电脑下载,只能手动复制文件过去。一般情况下,推荐使用appuploader服务同步。
证书类型说明
IOS开发选择apple development或者ios app development 类型 ios 发布选择 apple distribution或者 ios distribution (app store and ad hoc) 开发推送证书选择 apple push notification service ssl (sandbox) 发布推送证书选择 apple push notification service ssl (sandbox & production)
其他证书不是很常用,可以自行百度各种证书说明
注意:下载AU后需安装java8运行环境才能启动;安装好了最新Java8运行环境,解压AU软件包,无需安装,Windows 64位系统点击appuploader.exe启动;如果是Linux/Windows 32位系统或Mac系统双击appuploader.jar即可启动;直接用苹果账号即可登录使用
注意:appuploader并不是免费的,他只可以试用一个月,一个月之后可以点击激活进行付费
如果开启了手机验证码登录,获取验证码输入登录,在手机短信或者苹果手机直接弹出验证码 Appuploader可以很方便的直接在Windows电脑申请证书和管理证书,上传ipa文件,不需要苹果电脑;初次接触Appuploader的伙伴,通过以下介绍,清晰Appuploader的具体用法。
首页功能
页头的快捷功能,可以直接点击进入苹果开发者中心,iTunes Connect,上架要登录这些网站,可以很方便的进入;也可以直接进入Appuploader的官网,查看证书申请,真机调试上架等详细教程
证书功能
p12模块,有ID/名称/证书类型/过期时间/下载功能显示
1.id是证书的一个编码
2.名称,推送证书会显示appid,其他证书显示账号的名称
3.证书类型/发布证书(iOS Distribution),开发证书(iOS Development),开发推送证书(APNs Development iOS),发布推送证书(Apple Push Services)
4.过期时间,证书是一年有效期,到期重新申请
5.下载,可以直接下载p12文件,直接到开发工具打包
证书功能,描述文件模块
描述文件类型;发布描述文件(iOS Distribution),开发描述文件(iOS Development)
Active这个显示说明证书有效,如果是Invalid说明证书失效了,删除重新创建
上传ipa功能
点击提交,选择要上架的ipa就行了 点击右上角,设置,可以设置为保存密码,这样不用每次登陆都输入密码 iOS证书申请和真机调试测试,上架App Store的请查看详细教程,结合Appuploader使用,快速的帮助测试app和上架app
证书我们这边可以借助辅助工具appuploader
Appuploader可以辅助在Windows、linux或mac系统直接申请iOS证书p12,及上传ipa到App Store,最方便在Windows开发上架没有苹果Mac电脑的开发者!配合本教程使用,可以快速掌握如何真机测试及上架!
点击苹果证书按钮
点击新增
输入证书密码,名称
这个密码不是账号密码,而是一个保护证书的密码,是p12文件的密码,此密码设置后没有其他地方可以找到,忘记了只能删除证书重新制作,所以请务必记住密码。还有为了安全起见,密码不要太简单。 证书名称是你为了在证书列表里面便于区别的一个字符,自己好辨识就可以,尽量是是字母和数字之类
选择证书类型
带distribution的是发布类型,带development的是开发类型。
apple类型=ios+mac,所以开发时选择ios app development和apple development 类型都是可以的
选择bundle id
只有部分类型的证书需要选择bundle id,例如推送证书。因为大部分证书是不和app关联的。而是通过描述文件profile文件关联app。
使用appuploader同步服务
如果期望制作好证书后在其他电脑上同样可以下载到这个证书,或者和你同事同步此证书,则需要勾选使用appuploader服务同步。否则您需要手动管理p12文件在不同电脑之间的传输,并且一但创建下载后,无法在其他电脑下载,只能手动复制文件过去。一般情况下,推荐使用appuploader服务同步。
证书类型说明
IOS开发选择apple development或者ios app development 类型 ios 发布选择 apple distribution或者 ios distribution (app store and ad hoc) 开发推送证书选择 apple push notification service ssl (sandbox) 发布推送证书选择 apple push notification service ssl (sandbox & production)
其他证书不是很常用,可以自行百度各种证书说明