Other B4i v5.80 BETA has been released

Erel

Administrator
Staff member
Licensed User
As always I'm happy to release a new version :)

This update includes many IDE improvements as well as other improvements:

  • Bookmarks and breakpoints are listed in the modules tree:

  • Auto bookmarks feature:

    • Recent code positions and designer layouts appear as tabs in the window title.
    • The IDE decides on the list of tabs based on several factors (recency, modifications and others).
    • The list is saved together with the project and restored when the project is loaded.
    • The window can be dragged directly from the tabs.
  • Auto backup improvements:
    • Project is saved before backup, based on the auto save option.
    • Project name added to the backup file.
    • The project folder is configurable (AutoBackupFolder in the ini file).
  • Warning for unused parameters in private, non-event, subs.
  • Additional library folder can be configured with a B4X folder for cross platform libraries: https://www.b4x.com/android/forum/threads/b4x-additional-libraries-folder.103165/
  • #Event declarations appear in the autocomplete list.
  • Ctrl + Click on layout files from the code:



  • Fix for a long standing issue that caused scope changes of global variables to not always be detected.
  • Compilation performance improvements.
  • TextView / TextField SpellChecking property.
  • Default launch images for iPhone XS Max and iPhone XR were added.
  • #CertificateFile attribute supports absolute paths.
  • Debugger improvements.
  • Simulator builds with the hosted builder (Tools - Build Server - Build Simulator Release App).
    The simulator requires a Mac computer. With this improvement, developers using the hosted builder can make a simulator build, download it and then run it on an online service such as https://appetize.io/ or on any accessible Mac.
  • Bug fixes and other minor improvements.
Developers who are eligible for a free upgrade will receive an email with installation instructions.

Note that it is a BETA version.
 
Last edited:

Alexander Stolte

Well-Known Member
Licensed User
Simulator builds with the hosted builder (Tools - Build Server - Build Simulator Release App).
The simulator requires a Mac computer. With this improvement, developers using the hosted builder can make a simulator build, download it and then run it on an online service such as https://appetize.io/ or on any accessible Mac.
means that I theoretically do not need dev. license to test if i use https://appetize.io/?
 

Erel

Administrator
Staff member
Licensed User
means that I theoretically do not need dev. license to test if i use https://appetize.io/?
I don't think that it is very practical. It will be difficult to develop like this.

The two use cases that I see here are:

1. Getting screenshots from different devices.
2. Testing specific features or iOS versions.
 

emexes

Well-Known Member
Licensed User
... use cases that I see here are:
1. Getting screenshots from different devices.
I tried doing this a few weeks ago (this post), but:

i. the screenshot resolutions do not match the device specifications
ii. the screenshots are returned as (lossy) JPEGs with visible compression artifacts, rather than (lossless) PNGs
iii. there is no 12.9" iPad device (a required size for screenshots of iPad apps)

I emailed Appetize.io and their reply was:
We currently do not offer full resolution screenshot option. It is on our roadmap, and we will announce via Twitter (https://twitter.com/appetizeio) when we have it.
so there is at least some hope that these issues are temporary, which'd be great, because editing up screenshots is not as much a thrill as it used to be.

:)
 

emexes

Well-Known Member
Licensed User
Appetize is not the only service available.
Agreed, but... it was the best and simplest of the services I tried, and it was soooooo close to being perfect for generating screenshots, it near broke my heart to discover those problems.

But I couldn't produce a simulator build anyway. Now I can (when I've got this current app released safely, so's I can update B4i). Once I've got a built app running on their emulator, I'll query them again.
 

janderkan

Active Member
Licensed User
B4X:
B4i Version: 5.80 BETA 1
Parsing code.    (0.04s)
Building folders structure.    (0.15s)
Compiling code.    (0.42s)
Compiling layouts code.    (0.04s)
Compiling debugger engine code.    (2.48s)
Building Xcode project    (0.84s)
Sending data to remote compiler.    Error
Out: Build settings from command line:
    ARCHS = arm64
    CODE_SIGN_IDENTITY = iPhone Distribution: 1Click ivs (RW5JH37F9J)
    CONFIGURATION_BUILD_DIR = /Users/administrator/Documents/UploadedProjects/<user id>/Payload
    OTHER_CODE_SIGN_FLAGS = --keychain <user id>
    PRODUCT_NAME = Futedo Setup
    PROVISIONING_PROFILE = 5a0fa5f7-7d88-4a5f-a7c1-e87b18d1e20d

note: Using new build system
note: Planning build
note: Constructing build description
CreateBuildDirectory /Users/administrator/Documents/UploadedProjects/<user id>/build (in target: B4iProject)
    cd /Users/administrator/Documents/UploadedProjects/<user id>
    builtin-create-build-directory /Users/administrator/Documents/UploadedProjects/<user id>/build

MkDir /Users/administrator/Documents/UploadedProjects/<user id>/Payload/Futedo\ Setup.app (in target: B4iProject)
    cd /Users/administrator/Documents/UploadedProjects/<user id>
    /bin/mkdir -p /Users/administrator/Documents/UploadedProjects/<user id>/Payload/Futedo\ Setup.app

ProcessProductPackaging /Users/administrator/Library/MobileDevice/Provisioning\ Profiles/5a0fa5f7-7d88-4a5f-a7c1-e87b18d1e20d.mobileprovision /Users/administrator/Documents/UploadedProjects/<user id>/Payload/Futedo\ Setup.app/embedded.mobileprovision (in target: B4iProject)
    cd /Users/administrator/Documents/UploadedProjects/<user id>
    builtin-productPackagingUtility /Users/administrator/Library/MobileDevice/Provisioning\ Profiles/5a0fa5f7-7d88-4a5f-a7c1-e87b18d1e20d.mobileprovision -o /Users/administrator/Documents/UploadedProjects/<user id>/Payload/Futedo\ Setup.app/embedded.mobileprovision

WriteAuxiliaryFile /Users/administrator/Documents/UploadedProjects/<user id>/build/B4iProject.build/Release-iphoneos/B4iProject.build/DerivedSources/Entitlements.plist (in target: B4iProject)
    cd /Users/administrator/Documents/UploadedProjects/<user id>
    write-file /Users/administrator/Documents/UploadedProjects/<user id>/build/B4iProject.build/Release-iphoneos/B4iProject.build/DerivedSources/Entitlements.plist

ProcessProductPackaging "" /Users/administrator/Documents/UploadedProjects/<user id>/build/B4iProject.build/Release-iphoneos/B4iProject.build/Futedo\ Setup.app.xcent (in target: B4iProject)
    cd /Users/administrator/Documents/UploadedProjects/<user id>
    

Entitlements:

{
    "application-identifier" = "RW5JH37F9J.com.futedo.setup";
    "com.apple.developer.networking.wifi-info" = 1;
    "com.apple.developer.team-identifier" = RW5JH37F9J;
    "get-task-allow" = 0;
}


    builtin-productPackagingUtility -entitlements -format xml -o /Users/administrator/Documents/UploadedProjects/<user id>/build/B4iProject.build/Release-iphoneos/B4iProject.build/Futedo\ Setup.app.xcent

/Users/administrator/Documents/UploadedProjects/<user id>/B4iProject/b4i_mainpage.h:10:9: warning: non-portable path to file '"iJSON.h"'; specified path differs in case from file name on disk [-Wnonportable-include-path]
#import "ijson.h"
        ^~~~~~~~~
        "iJSON.h"
/Users/administrator/Documents/UploadedProjects/<user id>/B4iProject/b4i_mainpage.h
:
11
:
9:
warning
: non-portable path to file '"iPhone.h"'; specified path differs in case from file name on disk [-Wnonportable-include-path]

CompileAssetCatalog /Users/administrator/Documents/UploadedProjects/<user id>/Payload/Futedo\ Setup.app /Users/administrator/Documents/UploadedProjects/<user id>/Images.xcassets (in target: B4iProject)
    cd /Users/administrator/Documents/UploadedProjects/<user id>
    /Applications/Xcode.app/Contents/Developer/usr/bin/actool --output-format human-readable-text --notices --warnings --export-dependency-info /Users/administrator/Documents/UploadedProjects/<user id>/build/B4iProject.build/Release-iphoneos/B4iProject.build/assetcatalog_dependencies --output-partial-info-plist /Users/administrator/Documents/UploadedProjects/<user id>/build/B4iProject.build/Release-iphoneos/B4iProject.build/assetcatalog_generated_info.plist --app-icon AppIcon --launch-image LaunchImage --enable-on-demand-resources YES --sticker-pack-identifier-prefix .sticker-pack. --target-device iphone --target-device ipad --minimum-deployment-target 8.0 --platform iphoneos --product-type com.apple.product-type.application --compile /Users/administrator/Documents/UploadedProjects/<user id>/Payload/Futedo\ Setup.app /Users/administrator/Documents/UploadedProjects/<user id>/Images.xcassets


Error: ** BUILD FAILED **


The following build commands failed:
    CpResource /Users/administrator/Documents/UploadedProjects/<user id>/Settings.bundle /Users/administrator/Documents/UploadedProjects/<user id>/Payload/Futedo\ Setup.app/Settings.bundle
(1 failure)
I cannot figure out where to look for the error.
 

janderkan

Active Member
Licensed User
I always test a beta release on a backup, and the files for settings.bundle was missing.
Thank you, now it works fine :)
 

ajk

Active Member
Licensed User
In the full version, I would ask for
1) option to disable the history buttons at the top of the screen (or display them as a separate window with history)
2) option to display the search field where it was - in the search window (I work on 2 monitors - code on the right monitor, windows, emulators, etc. on the left) - new way of locating the search field on the main window does not match my needs
 

CaptKronos

Active Member
Licensed User
Using the beta I am having a problem with declaring a DocumentPickerViewController. Adding the following one line to the default project (and adding the iUI8 library)
B4X:
Dim DocumentPicker As DocumentPickerViewController
gives the compilation error:

B4X:
/Users/bob/Desktop/B4iBuildServer/UploadedProjects/<user id>/B4iProject/b4i_main.m:36:1: error: unknown type name 'B4IDocumentPickerViewController'; did you mean 'UIDocumentPickerViewController'?
B4IDocumentPickerViewController* _documentpicker = nil;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
UIDocumentPickerViewController
In module 'UIKit' imported from ../../Libs/iCore.h:7:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIDocumentPickerViewController.h:
35:58: note: 'UIDocumentPickerViewController' declared here
NS_CLASS_AVAILABLE_IOS(8_0) __TVOS_PROHIBITED @interface UIDocumentPickerViewController : UIViewController
                                                         ^
/Users/bob/Desktop/B4iBuildServer/UploadedProjects/<user id>/B4iProject/b4i_main.m:56:20: error: unknown receiver 'B4IDocumentPickerViewController'; did you mean 'UIDocumentPickerViewController'?
_documentpicker = [B4IDocumentPickerViewController new];
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   UIDocumentPickerViewController
In module 'UIKit
' imported from ../../Libs/iCore.h:7:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIDocumentPickerViewController.h:35:58: note: 'UIDocumentPickerViewController' declared here

NS_CLASS_AVAILABLE_IOS(8_0) __TVOS_PROHIBITED @interface UIDocumentPickerViewController : UIViewController

                                                         ^
2 errors generated.
I'm using a local builder and I have upgraded that to 5.80 beta.
 

Erel

Administrator
Staff member
Licensed User
Compiles fine here. Have you added #MinVersion: 8 ?

option to disable the history buttons at the top of the screen (or display them as a separate window with history)
It can be disabled by editing the INI file.

option to display the search field where it was - in the search window (I work on 2 monitors - code on the right monitor, windows, emulators, etc. on the left) - new way of locating the search field on the main window does not match my needs
Such an option might be added in the future.
 
Top