在 APICloud 网站控制台创建的应用
打开 Studio2
选择 顶部菜单 --> 代码管理 --> 代码检出 --> APICloud 云端应用
选择本地保存位置,注意一定要选择一个空目录
选择代码版本.可以直接回车确认,默认检出全部版本的代码
等待代码检出完成
需要现在 APICloud 网站创建应用,并在概览页,查看并记录其 appid
参考 1. 在 APICloud 网站控制台创建的应用,把新创建的应用检出到自己电脑上
右键 Studio2 项目根目录,选择"在 Finder 中显示"(macOS)或"在资源管理器中显示"(windows),找到应用代码的真实存放位置
把已有的源码,复制到新检出的应用源码目录中
把 config.xml 中的 id 替换为你创建的应用的 appid
参考 , http://apicloud.technology/2017/06/12/git-use/.把代码同步到 APICloud 云端
假设源码本地目录为 myapp/widget/
打开 Studio 2,选择 顶部菜单 --> 文件 --> 打开
在弹出的文件选择框里,选中 widget 目录即可
二. macOS 无法检出代码,提示 Can’t locate SVN/Core.pm ,怎么办?
1 未安装过 Xcode 或 Xcode 命令行开发工具
可以在 appstore 下载最新版 Xcode 或者只下载 Xcode 的命令行开发工具
下载 Xcode 命令行工具,需要在 mac 自带终端,执行以下命令:
xcode-select --install
sudo xcode-select -r
sudo ln -s /Applications/Xcode.app/Contents/Developer/Library/Perl/5.18/darwin-thread-multi-2level/SVN/ /Library/Perl/5.18/SVN
sudo mkdir /Library/Perl/5.18/auto
sudo ln -s /Applications/Xcode.app/Contents/Developer/Library/Perl/5.18/darwin-thread-multi-2level/auto/SVN/ /Library/Perl/5.18/auto/SVN
重启电脑,按住 Command+R,进入恢复模式,打开终端(Terminal),输入:
csrutil disable
正常打开电脑, 执行 1 和 2 中需要执行的指令.
重启按住 Command+R,进入恢复模式,打开Terminal,输入指令:
csrutil enable
三. windows 无法检出代码,提示 ‘git’ could not be spawned,如何处理?
在 windows 自带命令行,输入 git :如果有反应,重启 Studio2 即可解决.
如果已经安装过git,请先卸载.
重启 Studio2,如果有提示安装 git,可以选择 “自动免下载安装”(Studio2 内置的是32位GIT,适用于32位或64位系统).安装过程中,最好关闭杀毒软件(因为 git 安装时需要修改环境变量,会被误拦截),最好安装到C盘.
64 位windows系统,推荐手动下载安装 64 位版本的 Git,以释放电脑性能.下载地址: https://git-scm.com/download/win.
极少数 64系统的用户,在安装64位GIT后,依然报错,可尝试升级电脑系统,或下载 重新安装 2.10.x 版本的GIT,下载地址是: https://github.com/git-for-windows/git/releases/tag/v2.10.2.windows.1
四. 进行云端操作时, 提示"当前账户 * 似乎没有权限访问此应用的云端数据,请切换账号后重试!",怎么办?
请确保项目源码 config.xml 中的 id 和此应用在 APICloud 网站控制台概览中显示的 appid 一致.
如果自己电脑上,曾经登录过其他账户,请尝试退出后重新登录.
如果是代码管理相关的操作有问题,请尝试在重新登录后,重新检出此应用来重建部分代码管理的svn/git权限认证信息.新检出的此应用,在重建svn/git认证信息后,可直接删除,继续用原来检出的项目管理代码.
五. WIFI 同步,手机和电脑无法连接,为什么?
检查下防火墙,是否禁用了 APICloud Studio2的网络连接.
检查下手机和电脑,是否连接的是同一个WIFI.
如果电脑上安装有其他的 APICloud 插件或工具,可尝试修改 Stuido2 的默认 WIFI 调试端口:
顶部菜单 --> APICloud --> 偏好设置 --> packages --> apicloud --> 设置 --> WIFI 真机同步调试端口 --> 修改后,需要重启 Studio 2
本地代码时光机,仅对未提交到 APICloud 云端仓库的代码生效.在云端同步时,如果本地未做本地提交的代码,会尝试自动备份.默认最新的备份,总是在最上面,即索引为0. 当尝试从备份中获取代码时,可按一下操作执行:
假定项目名称为 repoA.在电脑文件夹中,把 repoA 复制一份,记为 repoCopy0
Studio2 中,选择顶部菜单 --> 文件 --> 打开 --> repoCopy0,此时可以看到左侧树状图新添加项目 repoCopy0
把 repoCopy0 中,除 .git 目录以外的文件,都删除
studio2 中,右键 repoCopy0 根目录 --> 代码管理 --> 本地代码时光机 --> 查看所有备份 --> 点击某个自己想要恢复的备份 --> 应用备份 即可.
可以自行对比 repoCopy0 和 repoA 中文件的差异,根据需要把 repoCopy0 中的文件复制到 repoA 中.
如果想尝试在多个备份中恢复,重复以上步骤即可.
历史版本代码,仅供对比或找回历史代码使用.获取方式是:
在 APICloud 网站控制台 --> 代码,获取该应用的 svn 地址和密码
使用 TortoiseSvn(适用于windows) 或 smartSvn(适用于 mac),检出代码,并查看所有版本的版本号, svn 的版本号是一个数字,比如 42.
在 Studio2 中,选择顶部菜单 --> 代码检出 --> 检出APICloud 云端应用 --> 选择 app --> 选择本地保存位置 --> 输入在步骤2中,看到的版本号,回车确认,等待检出完成即可.
APICloud Studio2的安装包,共分基础安装包,比如2.1.0版本,更新补丁包,包含补丁包和基础包的全量包.
以2.1.2为例, 2.1.2 全量包 = 2.1.0基础包 + 2.1.1补丁包 + 2.1.2补丁包
基础安装包和全量包,体积较大,一般在 100M 以上,适合初次是使用安装.补丁包,体积极小,一般在 0.1 M 左右,每次升级,Studio2会自动检测更新.
基础包,可以在 //www.apicloud.com/devtools.页面下载.
全量包,可以在 //docs.apicloud.com/Download/download. 页面下载,即下载 “APICloud SDK For Studio”.
云编译apploader,安卓证书很简单跟着,步骤就可以了,苹果的编译就麻烦多了 需要在苹果机里面进行证书的生成,然后编译已经的app上线还需要在苹果机里面进行推送,还有一个调试问题,一般调试使用自定义loader+真机调试,如果增加模块,则需要重新自定义loader一下,不能只使用真机调试因为模块问题会一直报错
先添加模块
socketManager.createSocket({
host:’’,//发消息的地址与端口,不发送可以不填写
port:’’,
udpMode:‘broadcast’,
localPort:55534,
type:‘udp’
}, function (ret, err) {
// alert(JSON.stringify(ret))
if (ret.state == 101) {
var state = ret.state;
var sid = ret.sid
var data = ret.data;
$api.setStorage(‘sid’,sid );//把SID储存在本地
// alert(JSON.stringify(ret)+sid+“创建成功”)
}if (ret.state == 103) {//指收到消息之后做的事情在这里插入代码片
showDefault("loadingkey", '正在配置')//自己做的动画效果
var sid = $api.getStorage('sid');
var res =JSON.parse(ret.data);
var resdata = ret;
socketManager.closeSocket({
sid: sid
}, function(ret, err) {
$api.rmStorage('sid')
// alert(JSON.stringify(ret)+'成功退出调用第二次函数'+resdata.data);
createSocketslast(resdata.host,resdata.port,resdata.data)
});
}
if (ret.state == 201) {
// alert(‘创建失败’);
}if (ret.state == 203) {
// alert(‘异常断开’,JSON.parse(ret));
}else {
// alert(JSON.stringify(ret),JSON.stringify(err)+‘其他错误’)
}
})
}