除了我的开发人员提到的上述过程之外,以下工作也不会对环境做任何改变。这将需要两阶段构建。
供参考,让我们使用这个链接以供参考: Appcelerator iOS Build JS (_build.js)
要解决此问题,可以从终端
appc run --build-only -T dist-adhoc --project-dir ~/Code/MyApp
一旦构建开始启动建设,让它经历和等到
调用的Xcode
被调用并引发错误。一旦引发错误,转到以下文件夹:
编译/ iphone /编译/产品/新闻稿 - iPhone
里面有你会发现APP文件和文件DSYM。如果没有,等待2-3分钟,XCode构建的后台进程将完成。一旦看到这两个文件,在这种情况下打开SDK的_build.js(5.5.1.GA)。您可以在构建开始时找到在控制台中显示的路径。
打开_build.js文件,然后转到下面的函数
iOSBuilder.prototype.run = function (logger, config, cli, finished)
里面有,你会发现一个一系列它具有所有的函数调用。在这里您需要进行以下更改:
function (next) {
cli.emit('build.pre.construct', this, next);
},
// initialization
//'doAnalytics',
'initialize',
'loginfo',
//'readBuildManifest',
//'checkIfNeedToRecompile',
//'initBuildDir',
/*
function (next) {
cli.emit('build.pre.compile', this, next);
},
function() {
// Make sure we have an app.js. This used to be validated in validate(), but since plugins like
// Alloy generate an app.js, it may not have existed during validate(), but should exist now
// that build.pre.compile was fired.
ti.validateAppJsExists(this.projectDir, this.logger, ['iphone', 'ios']);
},
// xcode related tasks
'createXcodeProject',
'writeEntitlementsPlist',
'writeInfoPlist',
'writeMain',
'writeXcodeConfigFiles',
'copyTitaniumLibraries',
'copyTitaniumiOSFiles',
'copyExtensionFiles',
'cleanXcodeDerivedData',
// titanium related tasks
'writeDebugProfilePlists',
'copyResources',
'encryptJSFiles',
'writeI18NFiles',
'processTiSymbols',
// cleanup and optimization
'removeFiles',
'optimizeFiles',
// provide a hook event before xcodebuild
function (next) {
cli.emit('build.pre.build', this, next);
},
// build baby, build
'invokeXcodeBuild',
*/
// provide a hook event after xcodebuild
function (next) {
cli.emit('build.post.build', this, next);
},
// finalize
'writeBuildManifest',
function (next) {
if (!this.buildOnly && (this.target === 'simulator' || this.target === 'device')) {
var delta = appc.time.prettyDiff(this.cli.startTime, Date.now());
this.logger.info(__('Finished building the application in %s', delta.cyan));
}
cli.emit('build.post.compile', this, next);
},
function (next) {
cli.emit('build.finalize', this, next);
}
现在再次运行appc run命令。现在,这将采取最后的构建并准备IPA。这是一个漫长的过程,但在没有任何环境变化的情况下完成工作。
如果我们从命令行执行xcodebuild,那么它工作正常,我们可以从中生成IPA。不确定为什么它在Studio中执行时不起作用。 – Soumya
这与调用invokexcodebuild函数的_builds.js有关。如果我从此呼叫返回,则其他代码正确流通。 – Soumya
我已经添加了为我工作的过程。这似乎是一个时间问题。所以在两阶段构建中,它工作正常。我也加了我自己的方法。 – Soumya