2013-09-13 3 views
4

У меня возникло множество проблем с обновлением моего приложения PhoneGap 1.x для Phonegap 3.0, по крайней мере для Android (я еще не начал обновление для версии iOS). Я подумал, что это может помочь многим людям, если я объединил все эти вещи в Q & A.Приложение для телефона для Android без Phonegap Build

Итак, вопрос в том, что вам нужно обратить внимание при обновлении существующего приложения до Phonegap 3.0?

Это своего рода руководство верхнего уровня, которое погружается в несколько деталей. Я описываю процесс для пользователей Mac, но хотя команды и инструменты могут отличаться, принципы одинаковы для Windows.

ответ

12

Advance предупреждения ...

Во-первых, не беспокоить с официальных документы модернизируют руководство. Это поможет вам обновить от 1.0 до 1.1, затем от 1,1 до 1,2, затем от 1,2 до 1,3 и т. Д. Если вы хотите перепрыгнуть через несколько версий, вы не знаете, правильно ли вы поступаете. Поэтому при обновлении создайте новый проект с нуля.

Кроме того, вы прыгаете вперед, чтобы убедиться, что вы не застряли в этом процессе: если ваше приложение до 3.0 3.0 PhoneGap использует настраиваемые плагины, подумайте очень внимательно, если вы хотите вообще обновить. Прокрутите вперед до «Остерегайтесь пользовательских плагинов», чтобы понять, почему.

Шаг за шагом

Сказав, что, это шаг за шагом процесс, разделенные линиями.


1. Командная строка

PhoneGap 3.0 все о инструменты командной строки. Это выглядит намного страшнее, чем есть на самом деле. Вам просто нужно установить несколько инструментов, которые вы будете использовать там (в основном, набрав команду в командной строке).

Наиболее важные общие команды, чтобы знать, являются:

//For Mac and Windows (on Windows, replace slashes by backslashes) 
cd mySubfolder //Go to the subfolder "mySubfolder" 
cd /MyTopLevelFolder/SomeOtherSubfolder //Go to any folder using the entire address 

//Show a list of files and subfolders where you currently are 
dir //On Windows 
ls //On Mac 

2. Будьте в нужном месте

Наиболее важным аспектом этого инструмента командной строки является то, что вам всегда должны обратить внимание , в каком каталоге вы в настоящее время находитесь.Сообщать, что Phonegap для создания и развертывания вашего приложения будет работать только в том случае, если вы находитесь в основной папке для этого приложения.

Ususally, чтобы сделать что-то с вашим проектом PhoneGap, вы должны перейти к домашней директории проекта с помощью:

cd /Users/yourself/thePathToYourWorkspace/YourCurrentPhonegapProject //On Mac 
cd D:\ThePathToYourWorkspace/YourCurrentPhonegapProject //On Windows 

3. Путь к просветлению

PS: Для того, чтобы убедитесь, что установленные вами инструменты запускаются правильно, иногда вам нужно сообщить компьютеру, что он должен выглядеть в нескольких дополнительных каталогах, если он не может найти файл в текущем каталоге. Вы редактируете что-то, называемое переменной пути . Посмотрите, что в другом месте, это не слишком сложно, но для Windows и Mac они разные.


4. Получить набор инструментов инструментариев первый

Чтобы приступить к работе, basic docs все в порядке. Вы загрузите и установите node.js, который является инструментом, который будут использоваться другими инструментами, а затем используйте его для установки phonegap/cordova инструмент командной строки.

//Like so, for Mac 
$ sudo npm install -g phonegap 
//Note: the "sudo" bit is needed to install a number of necessary files in folders that Apple protects from direct user editing 

С этого момента вы можете использовать команду «phonegap» для выполнения ряда задач для вашего проекта.


5. Открыть рабочее пространство

Первое, что вам нужно сделать, это создать рабочее пространство, которое является общее слово для главной папки для всех ваших проектов (вы можете сделать это используя Проводник Windows, Finder или любой другой удобный для пользователя).

Для Windows, в частности, убедитесь, что вы можете ввести весь путь к этой папке, не используя пробелы. Поэтому никогда не помещайте свое рабочее пространство в такое место, как «Мои документы», тем более, что это подкаталог C: \ Documents and settings \ John Doe \. Вместо этого попробуйте что-то вроде «D: \ Workspace».

вы уже используете Dropbox для других целей, и не слишком много хлопот по изменению местоположения папки Dropbox, подумайте над его использованием для автоматического резервного копирования вашей рабочей области. Просто поместите папку Dropbox в папку D: \ или на другой диск корневой каталог. Затем добавьте Workspace как прямые подпапки Dropbox.

Использование Dropbox может очень иногда мешать вам во время разработки, если это случается, синхронизация файлов в проекте. Но результат в том, что у вас есть автоматическое резервное копирование многих версии ваших файлов: все версии в текущий день, некоторые версии за вчерашний день, по одной версии за каждый день до этого.


6. Создайте свой проект

Далее перейдите в каталог рабочей в консоли командной строки с помощью команды cd.Когда, вы говорите PhoneGap, чтобы поставить на место основную структуру пустого приложения с помощью команды

$ phonegap create hello com.yourCompanyName.yourAppName HelloWorld 

Это создаст HelloWorld папку и заполнить его с рядом подкаталогов с файлами, которые являются основой ваше приложение.


7. Пелерина его на строительных лесах

Тогда вы о заполнив эту структуру. В основном, ваше приложение будет кучей файлов HTML, CSS и Javascript. Они входят в главную папку www. Эта папка также содержит файл config.xml, который содержит множество настроек для вашего приложения, например, какой значок использовать, какое имя показывать, показывать или не показывать строку состояния Android, какие домены для белого списка и т. Д.

Phonegap объединяет эти файлы в каталоге/www, поэтому у вас есть все ваши «редактируемые» материалы. Если у вас нет вашего приложения, чтобы делать что-то необычное, как с помощью плагинов, тогда вам хорошо идти.


8. Whitelist правильный путь

Если какая-либо часть вашего приложения на самом деле получает доступ к Интернету, даже если только что-то вроде Google Analytics, вы должны сказать PhoneGap в «белый список» соответствующий доменные имена. Как указано выше, это делается с использованием тегов в MyProject \ www \ config.xml.

Это сложный бизнес, потому что у Phonegap есть проблемы с различиями между платформами по этой проблеме.

для Android (с помощью Google Analytics в качестве примера), добавить домены в белый список, как так:

Причину вы добавить этот домен в два раза в том, что многие онлайн-сервисы начинают с простым непроверенным http: //, но некоторые из их функций могут впоследствии получить или отправить код с/на безопасный адрес https: // в том же домене.

Звездочка важна, потому что вы хотите иметь возможность загружать скрипты и другие материалы с ** www. ** google-analytics.com, а также из основного сайта google-analytics.com или любого поддомена.


9. Подключите дополнительные услуги

Если ваше приложение требует специальных функций (материал, который Android будет просить разрешения пользователей для, как доступ к телефону или записную книжку или камеры или акселерометра), то вам нужно установить плагины в проект приложения.

Посмотрите here в документах, чтобы узнать, как это сделать.

Кроме того, убедитесь, что вы добавить строку в файл config.xml, который говорит PhoneGap не просить каких-либо ненужных разрешений:

<preference name="permissions" value="none" /> 

документы говорят, что это означает, что вы просите только одного разрешения (доступ к сети), но это не совсем так.Пример: если вы установили плагин для камеры, приложение запросит у пользователя разрешение на доступ к камере, независимо от того, добавлено ли вы вышеприведенное значение = ни одного тега предпочтения. То же самое для всех других функций/разрешений.


10. Часы с пользовательскими плагинами

Кроме того, и это, кажется, не будет ошибкой в ​​PhoneGap, независимо от того, что ваши плагины и ваши настройки прав доступа, приложение всегда будет пытаться получить три других разрешения: RECORD_VIDEO, ACCESS_COARSE_LOCATION и ACCESS_FINE_LOCATION.

Телефонные разговоры просто помещают их в манифест Android, как если бы вы указали это где-то. Когда вы создадите приложение для фактического выпуска в магазине приложений, вам нужно будет это исправить. Как: вы редактируете свой AndroidManifest.xml сразу после своей последней сборки, но перед подписанием и выпуском пакета.

Таким образом вы получите эти неприятные разрешения. Но вы должны повторять это каждый раз, когда вы загружаете новую версию приложения в магазин приложений!


Помимо стандартных плагинов, Phonegap всегда обладал множеством сторонних пользовательских плагинов. То, как они установлены в Phonegap 3.0, полностью отличается от предыдущих. Ленивые специалисты, которые уже знают упражнение, говорят, что «это точно так же, как установка основных плагинов», но никто не удосуживается привести пример в любом месте.

Если вы знаете, как перевести процесс установки плагина pre-3.0 в процесс 3.0+, добавьте комментарий, и я скопирую его в этом руководстве.


Когда вы готовы приступить к тестированию своего приложения, сначала подключите свое устройство (или установите эмулятор). Эти команды будут наиболее полезны, и не все хорошо документированы ...

$ phonegap build android //This builds a test app, but doesn't run it 
$ phonegap run android //This builds the test app AND runs it on device/emulator 

Затем, когда приложение делает именно то, что вы хотите его, и вы готовы положить его в магазине приложений , вам нужно сделать несколько последних шагов до создать готовый к хранению пакет приложений (.apk).

У вас должен быть установлен «муравей». В моем случае установка всего другого материала означала, что муравей также автоматически устанавливался, и это, вероятно, будет иметь место для вас. Ant - это инструмент для создания пакетов (мой тупой вывод, а не проверенный факт).


11. Go, где муравей идет

До сих пор вы были съемки команды в консоли командной строки из домашней директории вашего проекта. Теперь, однако, вам захочется работать с Android apk, который вы создали с этими командами, а «ant» не знает, как «phonegap» делает, где их найти.

Так на голову к subsubdirectory ...

cd platforms/android //This is a subdir of blabla/workspaces/myproject. 

Это расположение Java Native "обертку" вашего Android приложения для HTML/CSS/Js вещи вы сделали.


12. Подготовка к выпуску

Если вам необходимо внести изменения в последних канавы в приложении (например, удаление странных запросов разрешения от AndroidManifest.xml), сделайте это сейчас. Обязательно отредактируйте файл AndroidManifest.xml в папке/platform/android, а не в/platform/android/bin.

Некоторые модификации вы maiy должны сделать из-за ошибок в PhoneGap:

  • удалить нежелательные разрешения запрашивает
  • установить версию кода вручную (Phonegap sets it to 1 даже если указано иначе в config.xml)

13. Выпуск муравьев

Если вы действительно готовы разместить свои вещи в магазине приложений, просто отпустите эту команду. Будьте готовы к ошибкам: вы справляетесь с этими шагами в один момент проще, чем я ставил весь процесс if-then в этом руководстве.

ant release 

Когда муравей будет сделано, вы должны найти файл с именем YourAppName-release.apk в папке/Платформы/Android/бункером. Это файл, который вы можете загрузить в Google Play.


14. Возможные проблемы с "муравей выпуска" ...

A. Вы приложение нуждается секретный ключ

Ключ хранится в частном хранилище (файл) , Если это не ваша первая версия приложения, получите эту информацию из того места, где вы ее сохранили, и разместите ее в простом, удобном для записи месте, таком как D: \ Developer \ Keystores. Если это ваша первая версия приложения, создайте ключ.

B. Ant не может найти ключ

Ant не знает, где искать это хранилище ключей, так что вам нужно отредактировать файл в каталоге/платформа Android, чтобы указать его в нужном направлении. Файл называется ant.properties. Добавьте эти свойства с помощью обычного текстового редактора:

//Point it to the right directory: 
key.store=/Users/Me/Dropbox/Developer/Keystores/keystoreForMyFirstApp //For Mac 
key.store = D:\Dropbox\Developer\Keystores\keystoreForMyFirstApp //For Windows 

//This describes the name of your signing key, as stored in the keystore 
key.alias=FirstKey 

Вы могут теперь будете готовы положить файл в АПК Google Play или какой-либо другой Android магазина. Я не был исчерпывающим, но эти шаги должны пройти долгий путь. Комментарии приветствуются!

+0

Ну, я могу только быстро его прочесть, но это выглядит потрясающе! Я постараюсь провести больше времени в эти выходные, проверяя все, но это похоже на довольно полезный пост! Может быть, вы хотите опубликовать это в качестве гостевого сообщения в блоге Cordova? (http://cordova.apache.org/blog/) – MBillau

+0

Дайте мне знать, как получается ваша проверка. Тем временем у этого парня есть сообщение, объясняющее способ обновления без каких-либо команд. Я не уверен, надеюсь, что он прав или нет ... :) http://stackoverflow.com/questions/18035566/phonegap-cordova-installation-windows/18036093#comment27706219_18036093 – Wytze

0

Я думаю, что это было бы супер полезно, если бы вы должны были следовать направляющие для обновления и сам документ каких-либо несоответствий или различий, которые вы наблюдаете:

Android: http://cordova.apache.org/docs/en/3.0.0/guide_platforms_android_upgrading.md.html#Upgrading%20Android

IOS: http://cordova.apache.org/docs/en/3.0.0/guide_platforms_ios_upgrading.md.html#Upgrading%20iOS

Я думаю, вам, вероятно, придется постепенно «модернизировать», например, вы не можете перейти с 1.x до 3.0, однако вы можете объединить кучу шагов. Независимо от того, действительно ли он проходит этот процесс, проверяя, что он работает, и отправляя любые запросы на загрузку до https://github.com/apache/cordova-docs/, вы поможете многим людям. Благодаря!

+0

Hi MBillau, вы были впереди меня, отвечая на мой собственный вопрос :) Как вы можете видеть, мой совет - не делать несколько шагов обновления, а вместо этого создавать совершенно новый проект в самой последней версии Phonegap. – Wytze

+0

Хм. Хорошо, что я прочитал в документах, что единственный реальный рекомендуемый способ сделать это - создать новое приложение с помощью CLI, а затем скопировать-вставить вашу/www/папку поверх ... затем просто проверить и исправить то, что сломано. Если вы задокументировали фактические исправления, это может быть полезно! Удачи! – MBillau

+0

мы оба говорим одно и то же. Не делайте пошаговое обновление, но создайте совершенно новое приложение («проект») и скопируйте материал www. Как только вы это сделаете, мой ответ может содержать решения некоторых проблем, которые могут возникнуть в процессе. – Wytze

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