2016-06-06 2 views
0

Я только что обновил Appcelerator Studio и обновил свой проект от Titanium SDK v5.0.2.GA до 5.3.0.GA , он отлично работает на Android (хотя мне пришлось удалить свойство цвета из ProgressBar, чтобы оно отображалось правильно), но на iOS он показал красный экран ошибки со следующим сообщением:Как исправить «не удалось найти модуль: ti.cloudpush для архитектуры: armv7» (Appcelerator Titanium)

Не удалось найти Как сообщает ARMv7

Консоль следующее ...

: модуль: ti.cloudpush для архитектуры

[INFO]: App начал [ERROR]: ошибка сценария не удалось найти модуль: ti.cloudpush для архитектуры: ARMv7

[ERROR]: Script Error Модуль "щ/общее/пользователя появляется" не удалось чтобы оставить объект действительный экспорт

[ERROR]: Сценарий модуля Ошибка "общие/услуги" не удалось оставить действительный экспорт объекта

[ERROR]: ErrorController вверх. ABORTING показ модального контроллера

[ERROR]: ErrorController встал. ABORTING показ модальный контроллер

Быстрый поиск Google подразумевает, что мне нужно изменить некоторые файлы манифеста и перекомпилировать модуль - но это не модуль, я написал, что это предусмотрено Appcelerator (Titanium).

Может ли кто-нибудь, пожалуйста, направить меня к тому, что требуется для устранения этой проблемы?

Reverting to 5.0.2.GA - также взрывается, поэтому, возможно, что-то в Appcelerator Studio что-то сломало, или у Applie/XCode появились новые требования?

Я развертываю через USB - нет AppStore на данном этапе.

Моего проект имеет следующее (примечание многие UIRequiredDeviceCapabilities не закомментированы, здесь никаких изменений в течение многих месяцев) ...

<?xml version="1.0" encoding="UTF-8"?> 
<ti:app xmlns:ti="http://ti.appcelerator.org"> 
    <id>com.devology.****.app</id> 
    <name>****</name> 
    <version>1.37</version> 
    <publisher>*****</publisher> 
    <url>https://www.****.com</url> 
    <description>****</description> 
    <copyright>****</copyright> 
    <icon>appicon.png</icon> 
    <!-- Android = appicon.png --> 
    <!-- <fullscreen>false</fullscreen><navbar-hidden>false</navbar-hidden> 
    --> 
    <analytics>true</analytics> 
    <guid>****</guid> 
    <property name="ti.ui.defaultunit" type="string">dp</property> 
    <ios> 
     <min-ios-ver>6.0</min-ios-ver> 
     <!-- 6.0 would exclude iPad 1--> 
     <!-- 7.0 is minimum version for armv7s--> 
     <plist> 
      <dict> 
       <key>NSLocationAlwaysUsageDescription</key> 
       <string>****</string> 
       <key>NSLocationWhenInUseUsageDescription</key> 
       <string>****</string> 
       <key>UISupportedInterfaceOrientations~iphone</key> 
       <array> 
        <string>UIInterfaceOrientationPortrait</string> 
        <string>UIInterfaceOrientationPortraitUpsideDown</string> 
       </array> 
       <!-- 
       <key>UISupportedInterfaceOrientations~ipad</key><array><string>UIInterfaceOrientationPortrait</string><string>UIInterfaceOrientationPortraitUpsideDown</string><string>UIInterfaceOrientationLandscapeLeft</string><string>UIInterfaceOrientationLandscapeRight</string></array> 
       --> 
       <key>UIRequiresPersistentWiFi</key> 
       <!-- specifies whether the app requires a Wi-Fi connection. iOS maintains the active Wi-Fi connection open while the app is running. --> 
       <false/> 
       <key>UIPrerenderedIcon</key> 
       <false/> 
       <key>UIStatusBarHidden</key> 
       <true/> 
       <key>beta-reports-active</key> 
       <true/> 
       <key>UIStatusBarStyle</key> 
       <string>UIStatusBarStyleDefault</string> 
       <key>UIBackgroundModes</key> 
       <array> 
        <string>location</string> 
        <!-- 
         Causes rejection by Apple, but shouldn't need backgrounded sound 
         because we use notifications to do this 
         <string>audio</string> 
        --> 
       </array> 
       <key>UIRequiredDeviceCapabilities</key> 
       <array> 
        <!--<string>armv7</string>--> 
        <!--iPhone 3GS, iPhone 4, iPhone 4S, iPod 3G/4G/5G, iPad, iPad 2, iPad 3, iPad Mini --> 
        <!--<string>armv7s</string>--> 
        <!-- iPhone 5, iPad 4 --> 
        <string>gps</string> 
        <!-- You should require GPS only if your app needs location data more accurate than the cellular or Wi-fi radios might otherwise provide. --> 
        <string>location-services</string> 
        <!-- if you include 'gps' key, you should also include the location-services key --> 
        <!--<string>sms</string> --> 
        <!-- Include this key if your app requires (or specifically prohibits) the presence of the Messages app. You might require this feature if your app opens URLs with the sms scheme. --> 
        <!--<string>telephony</string> --> 
        <!-- Include this key if your app requires (or specifically prohibits) the presence of the Phone app. You might require this feature if your app opens URLs with the tel scheme. --> 
        <!--<string>wifi</string>--> 
        <!-- Include this key if your app requires (or specifically prohibits) access to the networking features of the device. --> 
       </array> 
      </dict> 
     </plist> 
    </ios> 
    <android xmlns:android="http://schemas.android.com/apk/res/android"> 
     <manifest android:versionCode="37" android:versionName="1.37"> 
      <uses-permission android:name="android.permission.INTERNET"/> 
      <uses-permission android:name="android.permission.VIBRATE"/> 
      <uses-permission android:name="android.permission.SOUND"/> 
      <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 
      <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> 
      <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 
      <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION"/> 
     </manifest> 
     <services> 
      <service type="interval" url="common/androidBackgroundService.js"/> 
     </services> 
    </android> 
    <mobileweb> 
     <precache/> 
     <splash> 
      <enabled>true</enabled> 
      <inline-css-images>true</inline-css-images> 
     </splash> 
     <theme>default</theme> 
    </mobileweb> 
    <modules> 
     <module platform="android">ti.cloudpush</module> 
     <module platform="commonjs">ti.cloud</module> 
    </modules> 
    <deployment-targets> 
     <target device="blackberry">false</target> 
     <target device="android">true</target> 
     <target device="ipad">false</target> 
     <target device="iphone">true</target> 
     <target device="mobileweb">false</target> 
    </deployment-targets> 
    <sdk-version>5.0.2.GA</sdk-version> 
.... 
</ti:app> 

ответ

1

Как вы сказали, что «но прошивка он показал красный экран ошибки со следующим сообщением ... ", .....

модуль ti.cloudpush только для Android, как вы можете видеть его из этих линий в tiapp.xml:

<modules> 
    <module platform="android">ti.cloudpush</module> 
    <module platform="commonjs">ti.cloud</module> 
</modules> 

Теперь, p Возможно, проблема заключалась в том, что вы не проверяли ОС, где вам нужен модуль cloudpush.

Я предлагаю вам взглянуть на этот код, где вы вызываете его чем-то вроде этого:

var CloudPush = require('ti.cloudpush'); 

Таким образом, чтобы заставить его работать, используйте этот код:

var CloudPush; 

if (OS_ANDROID) { 
    CloudPush = require('ti.cloudpush'); 
} else { 
    CloudPush = null; 
} 

Если это делает не помогите, а затем поделитесь некоторым кодом, в котором вы вызываете этот модуль.

+0

Спасибо @ Prashant-Saini - Я ненавижу это, когда я делаю что-то глупое, к сожалению, я начал изменения Android более 6 недель назад, недавно возобновил и забыл, что я не запускал его на iOS с момента добавления CloudPush. Я тщательно поставил, если условия вокруг всего, кроме блока require. Спасибо!! Он показывает, когда вы обновляете Appcelerator Titanium и SDK, слишком легко подумать, что они что-то сломали ;-) –

Смежные вопросы