Мы разработали приложение JavaFX, которое мы планируем разместить в Mac App Store, но довольно поздно обнаружили, что в его нынешнем виде — поскольку оно имеет ограничения по функциональности/использованию, связанные с подпиской, оплаченной на нашем веб-сайте — оно скорее всего, будет отклонен за предложение этих дополнительных функций с помощью механизма, отличного от In App Purchase (Просмотреть рекомендации разделы 7.1, 7.13 и 7.15).
Мы хотели бы решить эту проблему, добавив In App Purchases в наше приложение JavaFX!
Первым решением, о котором я подумал, было бы включение «вспомогательного приложения» в пакет .app, содержащий классы JavaFX, связанный JRE и собственную оболочку, сгенерированную javapackager
. Это вспомогательное приложение будет вызываться из приложения JavaFX и будет представлять список покупок в приложении. Большой! За исключением того, что IAP доступны с помощью StoreKit только из пакета приложений, с которым они связаны в iTunes Connect. И вспомогательные приложения внутри моего пакета .app не могут использовать тот же идентификатор пакета, что и основное приложение (собственная оболочка).
Другое решение было бы, если бы я мог заменить простую нативную оболочку, сгенерированную javapackager
, своим собственным исполняемым файлом. Когда приложение .app было запущено, моя собственная оболочка вызывала JAR с помощью связанной JRE точно так же, как это делает текущая оболочка, но она также могла представлять пользовательский интерфейс для совершения покупок в приложении (связь между Java-частью и ее оболочкой, вероятно, будет сложно, но в конечном итоге это может быть достигнуто с помощью такой глупости, как запись одной части в [изолированный] файл, который отслеживается другой).
Тогда мой вопрос: доступен ли где-нибудь исходный код родной оболочки/лаунчера, сгенерированный javapackager
, или исходный код самого javapackager
? И если нет, кто-нибудь знает, как файл JAR, связанный с .app под /Java
, вызывается этой программой запуска?
javafxpackager
в Mac OSX — это просто сценарий оболочки, поэтому вы можете просмотреть его в текстовом редакторе (или просто с помощьюless
и т. д.). Этот сценарий выполняет некоторую хозяйственную работу, а затем вызывает инструмент Java, исходный код которого указан выше @jewelsea. - person James_D   schedule 11.11.2015opensnoop
и запустил свое приложение и заметил, чтоlibjli.dylib
вызывается первым, поэтому я предполагаю, что это так, но я не знаю, как его использовать. - person Craig McMahon   schedule 11.11.2015javapackager
приложение, которое мне нужно перепроектировать, а фактический собственный модуль запуска, который вызывается, когда я дважды щелкаю пакет .app. - person Craig McMahon   schedule 11.11.2015