Other B4i v10.0 BETA has been released

Erel

B4X founder
Staff member
Licensed User
Longtime User
xcode.png


I'm happy to release a beta version of B4i v10.0 :)
B4i compilation process has been rewritten from scratch based on Apple's latest methodology. All native libraries were rebuilt and most external dependencies were updated with latest versions.

B4i libraries are now compiled as xcframeworks and are compatible with iOS arm64, x86 simulator and arm64 simulator. The new build-chain works properly with Swift frameworks, assuming that the needed Objective C headers are available. Technical details: https://www.b4x.com/android/forum/t...itionallib-and-dependson.169223/#post-1037060

This is an important update as most SDKs are now built with Swift and it was no longer possible to wrap them with the old build-chain.

Other improvements:
  • Support for Xcode 26 and iOS 26.
  • Support for ARM based Macs.
  • #Macro attribute. Defined in B4XMainPage or Main modules. Format: <type>, <name>, <link>. Type can be Title or After Save. More to come in the future. Link is based on the comment link feature: https://www.b4x.com/android/forum/threads/119897/#content
    Examples:

    B4X:
    #Macro: Title, B4XOrderedMap Doc, https://www.b4x.com/android/forum/threads/b4x-b4xorderedmap-get-first-item-nth-item-and-last-item.118642/
    #Macro: Title, B4XPages Export, ide://run?File=%B4X%\Zipper.jar&Args=Project.zip
    'open Objects folder after saving project:
    #Macro: After Save, open objects folder, ide://run?File=%WINDIR%\explorer.exe&Args=%PROJECT%\Objects
  • Other improvements to the builder, including a fix to codesign requiring password.
  • New command line options for the IDE:
    -INI=<ini file path> - allows running the IDE with an alternative INI file. Note that that standard INI file is stored under: C:\Users\<user name>\AppData\Roaming\Anywhere Software\b4i\b4xV5.ini
    -INI_<property key here>=<property value>
    Example:
    B4X:
    "c:\Program files\Anywhere Software\b4i\b4i.exe" -INI_CodeTheme=Dark "-INI_TitleNotEmpty=This is the second IDE: $FILE_NAME$"
  • Bug fixes and other minor improvements

This is a large update which might require a few changes to existing projects, mainly related to referencing of external SDKs.
There are currently two hosted builders, Builder1 is compatible with v10 and Builder2 is compatible with older versions. A week or two after the stable release of v10.0, both builders will be updated. Developers using older versions of B4i will need to switch to a local builder or update. It is not possible to keep the old toolchain together with the new one.

Developers eligible for a free upgrade will receive an email with upgrade instructions. Thank you for your help with the beta version!
 
Last edited:

davemorris

Active Member
Licensed User
Longtime User
Hi, Erel

I am currently using your Hosted builder and run B4i v8.90 (for various projects) and now tend to use B4Xpages - But only as light developer in B4X (c, c++, c# is my main thing).

Question: What is the best procedure in adopting the new version, should I run with it now or wait for the full release.

To keep things simple, I would like to continue using B4i v8.90 as long as it is practical.

Kind regards
Dave
 
Upvote 0

Enrico Fuoti

Active Member
Licensed User
Longtime User
Hello Erel,
I tried to compile an application that uses AppleAuthButton class, but compilation fails with following error:

Error: ** BUILD FAILED **

The following build commands failed:
CompileC /Users/administrator/Documents/UploadedProjects/<user id>/build/B4iProject.build/Release-iphoneos/B4iProject.build/Objects-normal/arm64/b4i_appleauthbutton.o /Users/administrator/Documents/UploadedProjects/<user id>/B4iProject/b4i_appleauthbutton.m normal arm64 objective-c com.apple.compilers.llvm.clang.1_0.compiler (in target 'B4iProject' from project 'B4iProject')
(1 failure)
 
Upvote 0

Erel

B4X founder
Staff member
Licensed User
Longtime User
To keep things simple, I would like to continue using B4i v8.90 as long as it is practical.
You can install the beta version in a different folder and run both versions. If you prefer not to then wait for the stable release.

I tried to compile an application that uses AppleAuthButton class, but compilation fails with following error:
Good point. Updated the class: https://www.b4x.com/android/forum/threads/sign-in-with-apple-and-firebase.116280/
The change is related to the import in the OBJC code, as the underlying FirebaseAuth SDK is a Swift framework:
B4X:
'#import <FirebaseAuth/FirebaseAuth.h> replaced with
#import <FirebaseAuth/FirebaseAuth-Swift.h>
 
Upvote 0

Enrico Fuoti

Active Member
Licensed User
Longtime User
Thank You Erel,
I reinstalled Ver 8.90 in order to be able to continue my work, but i also installed ver. 10 to a different folder to test it.
Here a few more points that come out from compilaton.

The new Authbutton is working now,although the public method start is not included in the new version. Can i just copy it from the previous one ?.

GoogleMapsExtras class do throws the following error:
The following build commands failed:
ScanDependencies /Users/administrator/Documents/UploadedProjects/<user id>/build/B4iProject.build/Release-iphoneos/B4iProject.build/Objects-normal/arm64/b4i_googlemapsextra.o /Users/administrator/Documents/UploadedProjects/<user id>/B4iProject/b4i_googlemapsextra.m normal arm64 objective-c com.apple.compilers.llvm.clang.1_0.compiler (in target 'B4iProject' from project 'B4iProject')
(1 failure)

I removed GoogleMapsExtras class, but still had this error ,
Error: ** BUILD FAILED **

The following build commands failed:
Ld /Users/administrator/Documents/UploadedProjects/<user id>/Payload/Timeline\ Mobile.app/Timeline\ Mobile normal (in target 'B4iProject' from project 'B4iProject')
(1 failure)






I
 
Upvote 0

Erel

B4X founder
Staff member
Licensed User
Longtime User
The new Authbutton is working now,although the public method start is not included in the new version. Can i just copy it from the previous one ?.
I don't remember where it came from, as it wasn't included in the original. You can add it. I'm sure that it will work.

I've updated the GoogleMaps example. Two changes are required:
1. Updated GoogleMaps.bundle matching the latest version of Google Maps SDK.
2. Change the import line in the OBJC code:
B4X:
#import <iGoogleMaps/iGoogleMaps.h>

 
Upvote 0

Enrico Fuoti

Active Member
Licensed User
Longtime User
Great,
Google Map & Authbutton Ok now,
but still have this error, It doesn't really show where it comes from.

ld: warning: ignoring duplicate libraries: '-lc++'
ld: library 'iFLAnimatedImage' not found
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Error: ** BUILD FAILED **

The following build commands failed:
Ld /Users/administrator/Documents/UploadedProjects/<user id>/Payload/Timeline\ Mobile.app/Timeline\ Mobile normal (in target 'B4iProject' from project 'B4iProject')
(1 failure)
 
Upvote 0
Top