Tutorial: [LGSideMenuController] using bro-gen to quick generate bindings
27 Nov 2018 | bro-gen tutorial bindingThis tutorial mostly copies old one, please refer to it for more details.
It cover quick binding of LGSideMenuController.
This tutorial mostly copies old one, please refer to it for more details.
It cover quick binding of LGSideMenuController.
While testing binding of Network.framework
there were several discoveries:
copy
when binding function. It will crash during compilation.Details and workarounds bellow.
Follow up to issue #336: Could not find Java class corresponding to Objective-C class: WKNSURLAuthenticationChallenge.
Short story
WKWebView passes instance of internal/unexposed class WKNSURLAuthenticationChallenge
as parameter instead of expected NSURLAuthenticationChallenge
, and WKNSURLAuthenticationChallenge
doesn’t extends from expected type.
Why it works? Because WKNSURLAuthenticationChallenge
is NSProxy.
Long story
iOS 12.0 + 12.1 bindings have arrived as PR. These was massive API update as part of iOS12 release which includes new frameworks:
Also this release delivers lot of API changes to existing framework which, bright highlights are:
Beside updating API itself cocoatouch
receives lot of patches as result of improvement of bro-gen script.
(TODO: There will be detailed post about this)
Following was improved:
WithXX
was generated were mostly located and correctly renamed (this probably might be a breaking change);It is to be tested for other breaking changes but I hope it will be merged back in week or two.
As continue of previous post here is a workaround:
Solution is to keep static linking to Enhance
class from libconnector.a
. To achieve result lets introduce objc class that extends(and as result statically links) from Enhance
:
User OceanBreezeGames reported following issue on Gitter channel that was interesting to investigate:
Enhanced ipa fails with:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+[Enhance isInterstitialReady]: unrecognized selector sent to class 0x103343eb8'
Tried enhancing the app several time and it sometimes worked and sometimes not. For start how it expected to work:
Today maintenance PR326 delivers following:
[issue](https://gitter.im/MobiVM/robovm?at=5b98e2c4f3c26b08f6664e07) when using v4 and
implementation` as dependency command. This was happening due using outdated configuration name in dependency path resolution:// configure the runtime classpath
Set<File> classpathEntries = project.getConfigurations().getByName("runtime").getFiles();
while
// The name of the "runtime" configuration. This configuration is deprecated and doesn't represent a correct view of
// the runtime dependencies of a component.
As stated in #325 it doesn’t work. The reason for this is that okhttp3
detects RoboVM as Android (as there are corresponding providers classes present). And crashes while tries to access Android’s Build
class, which is not found:
java.lang.NoClassDefFoundError: android/os/Build$VERSION
at okhttp3.internal.platform.AndroidPlatform.getSSLContext(AndroidPlatform.java:434)
at okhttp3.OkHttpClient.newSslSocketFactory(OkHttpClient.java:282)
Dirty and fast solution is just to add Build
class to your class path:
package android.os;
public final class Build {
public final static class VERSION {
public final static int SDK_INT = 16; // android 4.1
}
}
Long term solution would be updating to OpenJDK10.
Alex @avazquezdev 10:32 I’ve been following the basic navigation tutorial using storyboard, but I have the problem that it’s not possible to adding an Unwind Segue. I select Ctrl-drag from the Cancel button to the exit symbol of the editing scene but the exit symbol is not selectable. Could there be a problem generating the Xcode project? I’d like to make sure it’s not a problem with my code. Here you can see the example.title
To have segue action assignments works corresponding objc code shell contains code with action defined as bellow:
/**
* IBAction unwindToNameList
*/
-(IBAction) unwindToNameList:(UIStoryboardSegue*) sender;
But XCode project generator didn’t make difference in parameter types and uses id
for everything, as result IB doesn’t see this method as subject for unwind operations:
-(IBAction) unwindToNameList:(id) sender;
The fix is to provide argument type for actions in case of native or custom classes. Changes are available in PR323
The fix is confirmed by users.
Same fixes were merged into boehm-gc code base and delivered as PR232, also issue #231 was created to track case.
Also up-to-date boehm-gc
with these changes for RoboVM is available in my branch dkimitsa/boehm-gc. Will investigate if there is any benefit to upgrade to recent boehm-gc
once ios12 is released.