Используете код Ruby / Python в приложении для iPhone OS? - PullRequest
5 голосов
/ 24 апреля 2010

Мое приложение должно использовать библиотеку, которая доступна только для Python и Ruby. Насколько я понимаю, Apple позволяет запускать Ruby на iPhone, пока пользователи не могут выполнить произвольный код ( Rhomobile использует Ruby).

Как я могу связать Ruby / Python с моим приложением, вызвать функцию из моего кода Obj-C и получить результат (строку) обратно в формате C или Obj-C?

Ответы [ 2 ]

3 голосов
/ 02 сентября 2010

К вашему сведению, в App Store есть много приложений на основе Rhomobile Rhodes, включая Wikipedia, MyHumana, RhoLogic для SugarCRM, Multilingual, TrackR и многие другие. Многие выходят на http://rhomobile.com. Мы часто общаемся с Apple и принимаем меры для обеспечения постоянного соблюдения всех условий обслуживания iOS.

Кроме того, строго говоря, то, что поставляется с вашим окончательным нативным приложением, является не интерпретатором, а (на всех платформах, кроме BlackBerry) исполнителем байт-кода Ruby 1.9. И истинная интерпретация (eval) отключена намеренно.

3 голосов
/ 24 апреля 2010

Вы не можете. Новое соглашение SDK запрещает использование оригинальных языков, отличных от C, C ++ или Objective-C , а соглашение SDK всегда запрещает динамически интерпретировать код. Существует некоторая двусмысленность в отношении того, как эти правила будут применяться, но для безопасности лучше избегать использования других языков до тех пор, пока излом не будет решен.

РЕДАКТИРОВАТЬ: Кроме того, насколько мне известно, в настоящее время нет никакого технического способа запуска Python на iPhone, согласно этот вопрос . Я слышал о встраивании Lua в приложения для iPhone, но не в Python. Вы можете сделать Python с взломанным iPhone , но не через магазин приложений.

Ситуация с Ruby почти такая же плохая, как в этом вопросе . IPhone не поставляется с интерпретатором Ruby, а компиляторы очень далеки от работы. Rhomobile работает, упаковывая интерпретатор и фреймворк с исполняемым файлом, который, я очень сомневаюсь, превзойдет новое соглашение SDK. Если вы действительно хотите использовать Ruby, Rhomobile, вероятно, будет лучшим выбором (поскольку реализация вашего собственного интерпретатора, вероятно, потребует много работы, и в равной степени вряд ли будет одобрена). На данный момент это довольно удручающий ландшафт - самое большее, на что мы можем надеяться, это то, что MacRuby в конечном итоге сработает, и Apple одобрит это. Это далеко, хотя.

РЕДАКТИРОВАТЬ 2: Я также только что узнал о tinypy , который потенциально может работать для Python. Я сомневаюсь, что это будет работать настоящие библиотеки, хотя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...