我在使用gulp的时候陷入困境!
我知道gulp用于连接文件,缩小脚本,编译scss文件,但我正在寻找一些任务,通过该任务我可以创建应用程序的构建并且< strong> .ipa
申请文件。
我们如何使用 gulp任务来实现它?
答案 0 :(得分:1)
我已经做了一些解决方法,并找到了使用gulp创建 .ipa 的好方法......
第一步:
参考:How can I deploy (create .ipa) iphone app using 'cordova build ios --release'?
如果您使用的是cordova ios 3.9.0或更高版本,则可以使用此命令直接从CLI创建.ipa,无需额外命令:
cordova build ios --device --release 您需要在项目的根目录中使用build.json文件
{
"ios": {
"debug": {
"codeSignIdentitiy": "iPhone Developer",
"provisioningProfile": "your-dev-provisioning-profile-UUID-here"
},
"release": {
"codeSignIdentitiy": "iPhone Distribution",
"provisioningProfile": "your-distribution-provisioning-profile-UUID-here"
}
}
}
要获取UUID,我在文本编辑器上打开.mobileprovision文件并搜索“UUID”,不确定是否有更简单的方法来查找它。
第二步:
参考:How to execute shell command using gulp
编写gulp任务来执行shell命令
var IOS_BUILD_COMMAND = 'ionic build ios';
var IOS_IPA_COMMAND = 'cordova build ios --device --release';
gulp.task('ios_build', function (cb) {
exec(IOS_BUILD_COMMAND, function (err, stdout, stderr) {
console.log(stdout);
console.log(stderr);
cb(err);
});
});
gulp.task('ios_ipa', function (cb) {
exec(IOS_IPA_COMMAND,
{
cwd : './',
maxBuffer: 500 * 1024
},
function (err, stdout, stderr) {
console.log(stdout);
console.log(stderr);
cb(err);
});
});
第三步:
从命令行执行gulp -r
。
哟......它完成了!! !!
答案 1 :(得分:0)
我对离子并不是很熟悉,但就我所知,它使用了Cordova。
您可以使用build.json
文件来管理应用签名配置。 (docs)
例如:
{
"ios": {
"debug": {
"codeSignIdentity": "iPhone Development",
"provisioningProfile": "926c2bd6-8de9-4c2f-8407-1016d2d12954",
},
"release": {
"codeSignIdentity": "iPhone Distribution"
"provisioningProfile": "70f699ad-faf1-4adE-8fea-9d84738fb306",
}
}
}
您甚至可以更进一步,使用Fastlane工具来处理证书。
Sigh可以在Cordova before_build
挂钩中使用,以确保使用新证书。
#!/usr/bin/env node
'use strict';
var path = require('path');
module.exports = function(context) {
if (context.opts.platforms.indexOf('ios') === -1) {
return;
}
var ConfigParser = context.requireCordovaModule('cordova-common').ConfigParser;
var superspawn = context.requireCordovaModule('cordova-common').superspawn;
var config = new ConfigParser(path.resolve(context.opts.projectRoot, 'config.xml'));
var id = config.ios_CFBundleIdentifier() || config.packageName();
var sighArgs = ['--app_identifier', id, '--username', '<your apple id here>'];
return superspawn.spawn('sigh', sighArgs, {stdio: 'inherit'});
};
更进一步,Deliver可用于自动将ipa上传到App Store。
当然,如果您愿意,这些工具也可以从gulp任务而不是Cordova钩子运行。