Создание приложения для iPhone без Xcode
Возможно ли это? Если это так, я хотел бы попробовать это, если только узнать больше. Кажется, что Xcode делает это автоматически, я хотел бы знать, что действительно нужно, чтобы сделать приложение для iPhone без предварительной настройки для меня.
Я понимаю, что это может спросить много, поэтому, если вы чувствуете, что живопись с широкими стоками идет вперед. Я хотел бы просто получить первоначальное представление о том, что потребуется для этого.
В идеале я хотел бы сохранить возможность запуска приложения в симуляторе или на моем телефоне. (Как еще я смогу проверить и отладить?).
Спасибо!
РЕДАКТИРОВАТЬ 1
Из некоторых ответов, которые у нас есть, я вижу, что мое намерение необходимо уточнить. Идея состоит в том, чтобы узнать больше о том, что Xcode предоставляет в процессе разработки приложений для iPhone. Я не хочу обходить Xcode, я просто хочу знать, что он на самом деле делает.
Может быть, какой-то список может быть местом для начала. Что-то вроде: to avoid using Xcode you would need to figure out how to create targets, code sign, etc.
Надеюсь, это поможет.
Ответы
Ответ 1
Если вы действительно хотите знать, как все работает, вы можете начать с изучения формата двоичного исполняемого файла и фактического используемого машинного кода процессора. Затем вы узнаете, как создать массив шестнадцатеричных или восьмеричных кодов операций как для armv7 или armv64, так и для машинного кода x86. Тогда вы сможете создать приложение без использования компилятора Xcode LLVM или генератора кода.
Добавлено: Но вам все равно понадобятся инструменты XCode для кодирования подписи пакета до его установки на немодифицированное устройство iOS.
Ответ 2
Все неправильно... Xcode просто создает двоичный диск из nibs и позволяет вам называть их объектами... вы можете делать то же самое, используя GCC самостоятельно...
- Создайте main.m, RootControlViewer.h, RootControlViewer.m и AppNameApplication.h
- делегат...
- Создайте файл makefile...
- включают необходимые флаги компилятора, адресатов в фреймворки и необходимые файлы include...
-
И из оболочки введите "make", и у вас есть application.app generated...
-
Поместите их в папку с полезной нагрузкой...
- zip и переименовать zip в IPA...
- затем используйте команду sign для подписи пакета...
Я работаю над клоном XCODE для Windows, Mac и Linux...:-) все элементы управления генерируются в чистом коде (без перьев), и я уже завершил построитель интерфейсов и могу создать рабочий устанавливаемый приложения... В настоящее время я пишу "интерпретатор", который будет использоваться, чтобы синтаксис был более "ОСНОВНЫМ", и когда вы нажимаете build..all код преобразуется в obj-c... построен с использованием gcc... и готов к развертыванию:-)
Ответ 3
Посмотрите это.
Я не использовал его сам, но, похоже, делает все, что делает Xcode.
Ответ 4
Если вы сделали джейлбрейк на своем устройстве iOS, вы можете установить gcc toolchain из Cydia и разработать и скомпилировать приложения прямо на вашем устройстве. Вы не сможете разместить эти приложения в AppStore, но это прекрасный способ изучить API Apple.
Если вам интересно, прокомментируйте, и я раскрою это сообщение с практическим и небольшим примером.
Ответ 5
Ограничения жизни без Xcode
Это действительно зависит от того, какой уровень боли и какие компромиссы вы хотите сделать. По сути, для App Store нет iOS-разработки без Mac и Xcode.
Некоторые проблемы и примеры без Xcode
- CodeSigning
codesign
- Загрузка в AppStore
- Библиотеки
UIKit
- Toolchain
clang
Это не значит, что проблемы не могут быть преодолены до некоторой степени, но это начинает выталкивать вас из AppStore в мир джейлбрейков. Так что если вы все еще хотите разрабатывать для устройства, симулятора и собственно AppStore, вы многое можете сделать без проектов Xcode.
Выбор отладчика и IDE
Вы можете использовать vi
или AppCode. Подойдет любой текстовый редактор. Вы по-прежнему хотите установить Xcode на свой компьютер для того, чтобы иметь набор инструментов компилятора и необходимые библиотеки. На самом деле не обойтись. Затем для отладки вы можете использовать lldb
в командной строке. Установка и управление приложениями может осуществляться через ios-deploy.
Привет мир сортов - Untitled.app
Github Project
Я собираюсь создать (чрезвычайно) базовое приложение для iPhone Simulator. Основной идиомой приложения является папка с расширением .app
содержащая Info.plist
и двоичный файл, скомпилированный для цели. Info.plist
содержит отображаемое имя, идентификатор пакета и двоичное имя.
Makefile
Создание приложения, вероятно, самая сложная часть. Makefile не нужен, но он помогает вам оставаться в здравом уме.
default: main
.PHONY: clean
clean:
rm main
SYSROOT:=$(shell xcrun --sdk iphonesimulator --show-sdk-path)
main: main.m
clang -isysroot $(SYSROOT) -framework Foundation -framework UIKit -lobjc -o Untitled.app/[email protected] $<
Папка Untitled.app и Info.plist
Создайте папку с именем Untitled.app
и добавьте Info.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleDisplayName</key>
<string>Untitled</string>
<key>CFBundleExecutable</key>
<string>main</string>
<key>CFBundleIdentifier</key>
<string>com.cameronpalmer.Untitled</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>Untitled</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.0.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationPortraitUpsideDown</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
</dict>
</plist>
main.m
#import <UIKit/UIKit.h>
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@end
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(id)options {
NSLog(@"%s", __PRETTY_FUNCTION__);
CGRect mainScreenBounds = [[UIScreen mainScreen] bounds];
self.window = [[UIWindow alloc] initWithFrame:mainScreenBounds];
UIViewController *viewController = [[UIViewController alloc] init];
viewController.view.backgroundColor = [UIColor whiteColor];
viewController.view.frame = mainScreenBounds;
self.window.rootViewController = viewController;
[self.window makeKeyAndVisible];
return YES;
}
@end
int main(int argc, char *argv[]) {
NSLog(@"%s", __PRETTY_FUNCTION__);
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}
}
Постройте и установите его на симуляторе
# Build
make
# Boot
xcrun simctl boot <UUID_OF_DESIRED_SIMULATOR>
# Install
xcrun simctl install <UUID_OF_BOOTED_SIMULATOR> ./Untitled.app
# Open Simulator app
XCODE_PATH=$( xcode-select --print-path )
open "${XCODE_PATH}/Applications/Simulator.app"
Теперь просто запустите приложение, и вы получите белый ящик в симуляторе.
Ответ 6
В iPhone вы можете создать 2 вида приложений: a) Веб-приложения b) Native Apps
a) Веб-приложения могут быть созданы с использованием только Javascript и затем сохранены на рабочем столе устройства iOS. При нажатии на них они запускаются в браузере.
b) Родные приложения также двух видов.
-
Purely native: полностью используется Xcode. Может иметь шаблоны, плагины, вызовы в другие приложения и т.д.
-
Приложения, которые начинаются как приложения для веб-приложений/SAP/и т.д., а затем могут быть добавлены в приложения. В этой категории есть Sencha Touch, JQuery Mobile и т.д. Эти приложения запускаются изначально на телефоне, как правило, используют телефонную или подобную плагину в Xcode и могут быть помещены в AppStore.
Вы можете следовать этому руководству по созданию простого приложения XCode с нуля.
http://techtalktone.wordpress.com/2011/11/26/hello-world/
Если вы хотите что-то, что НЕ потребует от вас сделать учетную запись ADC или зарегистрироваться в качестве разработчика и по-прежнему создавать потрясающие приложения, попробуйте этот учебник:
http://techtalktone.wordpress.com/2011/12/05/testing-your-ios-apps-on-a-jailbroken-device-2/
Надеюсь, что это поможет:)
Ответ 7
Невозможно разрабатывать приложения для iOS без Xcode. Apple не допустит этого, вам даже понадобится Apple OS te разработать собственные приложения!
Тем не менее, можно создавать мобильные приложения с фреймворками и платформами, такими как Phonegap. С их помощью вы можете создавать мобильные приложения с HTML, CSS и Javascript вместо родной цели c. Если вы используете фреймворки, вы можете использовать свое собственное программное обеспечение по выбору.
Edit:
Вы даже можете использовать MonoTouch, который вы готовы заплатить. Я разработал тестовое приложение с Mono, и я впечатлен возможностями.
Ответ 8
Возможно, если вы решите написать код на других языках, кроме Objective-C.
Вы можете использовать кросс-платформенный SDK для разработки таких приложений, как
Corona или Unity или PhoneGap как указано выше.
Ответ 9
Вы можете использовать инструмент под названием theos, который позволяет создавать приложения, которые можно запускать на /jailbroken/device. Он позволяет создавать собственные приложения, которые можно запускать на устройстве (не используя html или что-то еще). Вам также не нужно иметь идентификатор подписи кода для запуска этих приложений на вашем устройстве.
Heres ссылка о том, как установить, к сожалению, документации практически нет.
Ответ 10
Это не так. Эмуляция того, что Xcode делает, потребует обратной инженерии для многих технологий Apple и, несомненно, приведет к ярости Apple и, возможно, к юридическим действиям.
Ответ 11
Вы можете попробовать Xamarin MonoTouch, который утверждает, что разрешает создавать собственные приложения для iOS в С#/. NET. Хотя это не совсем одно и то же, но это дает вам возможность создавать собственные приложения iOS на С# (или, соответственно, они утверждают).
Я не тестировал его, но люди, похоже, считают, что он работает (я видел несколько статей об этом).
Насколько хороши в сравнении с разработкой XCode в обычном режиме? И будет ли он когда-нибудь взорваться? Я не знаю. Но это похоже на хороший проект.