簡體   English   中英

GluonVM 在 iOS 設備上啟動 [問題]

[英]GluonVM launching on iOS Device [issues]

我正在使用 Oracle JDK 10.2 在 iOS 上嘗試 GluonVM。 我注意到雖然我在src/ios/Default-Info.plist 中有“com.javasuns.test”,但當我運行“./gradlew launchIOSDevice”命令時,捆綁 ID 取自build.gradle中定義的mainClassName

這是我的例子:

默認信息.plist

<key>CFBundleIdentifier</key>
<string>com.javasuns.test</string>

build.gradle

dependencies {
     compile 'com.gluonhq:charm:5.0.2'
}

mainClassName = 'test.TestFX'

fxmobile {
    javafxportsVersion = '8.60.12'
    ios { ...... }
}

./gradlew launchIOSDevice

com.gluonhq.higgs.Higgs: non-fatal issue for class javafx.scene.web.JSObjectIosImpl (no known superclass) 
command to dsymutil: xcrun dsymutil -o /Volumes/MyApps/testFX/build/gvm/testFX.app.dSYM /Volumes/MyApps/testFX/build/gvm/testFX.app/testFX 
Error getting ProvisioninedDevices, ignore
created
created
created
created
Error getting ProvisioninedDevices, ignore
created
provprofile asked, bid = test.TestFX and origbid = test.TestFX
provprofile asked, bid = test.* and origbid = test.TestFX
provprofile asked, bid = * and origbid = test.TestFX
No provisioning profile found matching signing identity 'iPhone Developer: #NAME#' and app bundle ID 'test.TestFX'
will return PP null
No provisioning profile found matching signing identity 'iPhone Developer: #NAME#' and app bundle ID 'test.TestFX'
will return PP null
No provisioning profile found matching signing identity 'iPhone Developer: #NAME#' and app bundle ID 'test.TestFX'
will return PP null
Warning, getProvisioningProfile is failing
java.lang.NullPointerException

I have managed to bypass the issue by creating a new java main class named " test.java " under "com.javasuns" package (ignoring that java type names usually start with an uppercase letter).

build.gradle(已更改)

mainClassName = 'com.javasuns.test'

但是,現在出現了一個新錯誤,我不知道如何解決它:

13:17:45:491] BosonAppSupport: Validating codesign... 
[SUB] /Volumes/MyApps/testFX/build/gvm/testFX.app: valid on disk
[SUB] /Volumes/MyApps/testFX/build/gvm/testFX.app: satisfies its Designated Requirement
[13:17:46:269] BosonAppSupport: Validation codesign result: true 
[13:17:46:270] BosonAppSupport: Codesign done 
[13:17:46:333] BosonAppBuilder: UploadInternal start 
[13:17:51:041] : Upload Progress: 10% 
[13:17:51:573] : Upload Progress: 20% 
[13:17:52:104] : Upload Progress: 30% 
[13:17:52:916] : Upload Progress: 40% 
[13:17:53:947] : Upload Progress: 50% 
[13:17:54:696] : Upload Progress: 60% 
[13:17:55:520] : Upload Progress: 70% 
[13:17:56:372] : Upload Progress: 80% 
[13:17:57:367] : Upload Progress: 90% 
[13:17:58:414] : Upload Progress: 100% 
[13:17:58:460] BosonAppBuilder: uploadInternal done 

[13:17:58:796] : Progress: CreatingStagingDirectory [5%] 
[13:17:58:798] : Progress: ExtractingPackage [15%] 
[13:17:58:799] : Progress: InspectingPackage [20%] 
[13:17:58:802] : Progress: TakingInstallLock [20%] 
[13:17:58:804] : Progress: PreflightingApplication [30%] 
[13:17:58:805] : Progress: InstallingEmbeddedProfile [30%] 
[13:17:58:812] : Progress: VerifyingApplication [40%] 
[13:17:58:954] : Error: APIInternalError, Description: Failed to unhide archs in executable file:///private/var/installd/Library/Caches/com.apple.mobile.installd.staging/temp.LXITKr/extracted/testFX.app/TestApp

> Task :launchIOSDevice
[13:17:58:955] BosonAppBuilder: Installing finished due to an error. 
[13:17:58:958] BosonAppBuilder: Install internal failed 
[13:17:58:958] BosonAppBuilder: Something went wrong. App wasn't installed on the device 

關於如何解決這兩個問題的任何想法?

您必須正確設置兩個主要鍵: CFBundleIdentifierCFBundleExecutable

您可以檢查示例SingleView-GluonVM

  • 主類名(見build.gradle ): com.gluonhq.samples.singleviewgvm.SingleViewWithGluonVM
  • CFBundleIdentifier(參見Default-info.plist ): com.gluonhq.samples.singleviewgvm.SingleViewWithGluonVM

或具有類似設置的示例DeepLearning-LinearClassifier

如您所見,Gluon IDE 插件默認將CFBundleIdentifier設置為主 class 名稱,並將CFBundleExecutable設置為您的移動項目的名稱。

CFBundle標識符

當您想要將您的應用程序部署到 iOS 時,供應配置文件應具有此捆綁 ID。 但是,您也可以使用通配符。 只需確保您已將配置文件下載並安裝到您的機器上(它應該在/Users/<user>/Library/MobileDevice/Provisioning Profiles下),擴展名為.mobileprovision

如果您預覽它(例如從 Finder),該文件中的 AppID 可能類似於<TEAM ID>.<mainClassName><TEAM ID>.*

是 jfxmobile 插件設置appId的地方。

CFBundleExecutable

關於CFBundleExecutable ,這是您的應用程序在build/gvm/下的名稱。 在這種情況下,它必須使用您的項目名稱(如 gradle 名稱)。

是 jfxmobile 插件設置appName的地方。

您將在/<appName>/build/gvm/<appName>.app下找到您的應用程序(盡管 Finder 只會顯示<appName>

如果您看到應用程序的內容,您會在/<appName>/build/gvm/<appName>.app/<appName>下找到可執行文件:

你得到的錯誤;

[13:17:58:954]:錯誤:APIInternalError,描述:無法取消隱藏可執行文件中的拱門:///private/var/installd/Library/Caches/com.apple.mobile.installd.staging/temp.LXITKr /extracted/testFX.app/TestApp

顯示testFX.app/TestApp ,所以您的項目名稱可能是testFX ,但應該是TestApp

或者,您可以簡單地匹配您在CFBundleExecutable中設置的值,方法是將settings.gradle文件添加到您的項目中,其中:

rootProject.name = "<your bundle executable value>"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM