如何使Titanium(SDK)工作?

时间:2015-02-20 12:19:11

标签: titanium titanium-alloy

使用Yosemite在MacBooks上更新Titanium SDK 3.5.0后,我的所有开发人员计算机上都出现了一些问题,这使我无法处理当前项目:

问题

  1. “ti info”由于longjohn.js中的异常而停止(请参阅下文)

  2. “ti setup”在生成childProcess时停止并出现另一个异常

  3. Titanium Studio找不到我的iOS SDK,但至少安装了iOS SDK 8.1并在XCode中完美运行(下面提供了更多信息)

  4. 每次启动Titanium Studio后都会出现一个错误对话框,指出“计算SDK信息期间发生内部错误,java.lang.NullPointerException”,这似乎与#3下的问题有关,我提到过上方。

  5. 由于上述各点,无法使用钛构建任何iOS应用程序

  6. 已安装的版本:

    • 节点:0.12.0
    • npm:2.5.1
    • Titanium CLI:3.4.1.201410281727
    • Titanium SDK版本:3.5.0.GA
    • java:1.8.0_25
    • OSX:10.10.2(Yosemite)
    • XCode:6.1.1
    • iOS SDK:8.1

    错误消息

    1。 “ti info”:(在终端)

    Titanium Command-Line Interface, CLI version 3.4.1, Titanium SDK version 3.5.0.GA
    Copyright (c) 2012-2014, Appcelerator, Inc.  All Rights Reserved.
    
    Please report bugs to http://jira.appcelerator.org/
    
     |[ERROR] Failed to run command "info"
    /usr/local/lib/node_modules/titanium/node_modules/longjohn/dist/longjohn.js:185
            throw e;
                  ^
    logger.log (/usr/local/lib/node_modules/titanium/lib/logger.js:72:21),target.(anonymous function) [as error] (/usr/local/lib/node_modules/titanium/node_modules/winston/lib/winston/common.js:45:21),CLI.<anonymous> (/usr/local/lib/node_modules/titanium/lib/cli.js:955:17),/usr/local/lib/node_modules/titanium/node_modules/async/lib/async.js:119:25,Object.<anonymous> (/usr/local/lib/node_modules/titanium/node_modules/async/lib/async.js:24:16),CLI._fireHookCallback (/usr/local/lib/node_modules/titanium/lib/hook.js:269:12),/usr/local/lib/node_modules/titanium/lib/hook.js:248:10,/usr/local/lib/node_modules/titanium/node_modules/async/lib/async.js:232:13,async.eachSeries (/usr/local/lib/node_modules/titanium/node_modules/async/lib/async.js:130:20)
    ha
    

    2。 “ti setup”(终端)

    > Where do you want to go? 1
    
     |[ERROR] TypeError: Incorrect value of args option
    
        at normalizeSpawnArguments (child_process.js:952:11)
        at exports.spawn (child_process.js:984:38)
        at run (/Users/<user>/Library/Application Support/Titanium/mobilesdk/osx/3.5.0.GA/node_modules/node-appc/lib/subprocess.js:47:14)
        at Object.detect (/Users/<user>/Library/Application Support/Titanium/mobilesdk/osx/3.5.0.GA/node_modules/node-appc/lib/jdk.js:71:3)
        at async.parallel.jdk (/Users/<user>/Library/Application Support/Titanium/mobilesdk/osx/3.5.0.GA/node_modules/titanium-sdk/lib/android.js:71:13)
        at /Users/<user>/Library/Application Support/Titanium/mobilesdk/osx/3.5.0.GA/node_modules/async/lib/async.js:524:25
        at /Users/<user>/Library/Application Support/Titanium/mobilesdk/osx/3.5.0.GA/node_modules/async/lib/async.js:111:13
        at Array.forEach (native)
        at _each (/Users/<user>/Library/Application Support/Titanium/mobilesdk/osx/3.5.0.GA/node_modules/async/lib/async.js:32:24)
        at async.each (/Users/<user>/Library/Application Support/Titanium/mobilesdk/osx/3.5.0.GA/node_modules/async/lib/async.js:110:9)
    

    第3。 Titanium Studio找不到任何iOS SDK:

    我已经执行了: $ sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer

    然后我输入“Titanium Studio - &gt;首选项 - &gt; Studio - &gt;平台 - &gt; iOS”。 iOS SDK Home的设置为空,显示“未指定”。

    但已安装iOS SDK for 8.1: enter image description here

    Titanium Preferences for iOS SDK

    Titanium Studio日志文件中的一些重要消息:

    !MESSAGE An internal error occurred during: "Computing SDK Info...".
    !STACK 0
    java.lang.NullPointerException
        at com.appcelerator.titanium.ui.portal.processor.MobileSDKConfigurationHelper.getVersionInfo(MobileSDKConfigurationHelper.java:133)
        at com.appcelerator.titanium.ui.portal.processor.MobileSDKConfigurationProcessor.computeStatus(MobileSDKConfigurationProcessor.java:74)
        at com.aptana.configurations.processor.AbstractConfigurationProcessor.getStatus(AbstractConfigurationProcessor.java:154)
        at com.appcelerator.titanium.ui.portal.actionController.MobileSDKActionController$1.run(MobileSDKActionController.java:127)
        at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)
    
    
    !MESSAGE An internal error occurred during: "Sending Analytics Ping ...".
    !STACK 0
    java.lang.NullPointerException
        at com.aptana.usage.internal.DefaultAnalyticsEventHandler.getAnalyticsLogger(DefaultAnalyticsEventHandler.java:207)
        at com.aptana.usage.internal.DefaultAnalyticsEventHandler.sendEventSync(DefaultAnalyticsEventHandler.java:241)
        at com.aptana.usage.internal.DefaultAnalyticsEventHandler$1.run(DefaultAnalyticsEventHandler.java:75)
        at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)
    
    
    
    !ENTRY com.aptana.core 4 1 2015-02-20 11:37:18.555
    !MESSAGE sudo: a password is required
    
    !ENTRY com.appcelerator.titanium.core 4 0 2015-02-20 11:38:17.801
    !MESSAGE (Build 3.4.1.201410281727) [ERROR]  Unable to locate the CLI executable. Please restart Studio or use Help > Check for Titanium Updates to install Titanium CLI.
    

    (有趣的副作用:在appcelerators开发者论坛中提出类似这样的问题将立即被拒绝,因为“此数据未被接受,因为它被标记为垃圾邮件。”(我尝试了多种变体))

    我能知道什么?

3 个答案:

答案 0 :(得分:2)

使用旧版本的Node(10.33)为我解决了这个问题。

我使用节点包管理器安装“n”,它允许你切换版本(你需要以sudo的身份运行它):

npm install -g n

然后切换版本,也作为sudo:

n 0.10.33

答案 1 :(得分:1)

有趣的事实:Appcelerator Titanium无法使用Node 0.12。

要通过一步解决所有这些问题,我只需要从节点0.12切换回节点0.10.35。

答案 2 :(得分:0)

(OS优胜美地) 如果其他人遇到此问题,请检查以下文件夹的权限:

/Users/user.folder/Library/Application Support / Titanium / mobilesdk / osx /

确保将权限应用于所有子文件夹/文件。在重新安装钛2次,将节点降级到各种不同版本,并遵循各种堆叠溢出线程中的所有说明后,我的机器上出现了权限问题。