iOS Tutorial Local Mac Builder Installation

Status
Not open for further replies.
iOS compilation requires an Apple Mac computer. Developers have two options with B4i:
- Use a local Mac machine connected over the local network.
- Use our hosted builder rental service.

These instructions explain how to install the builder on a local Mac machine.

1. Install Java JDK 8: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
OpenJDK 11+ is also good (link is available here: https://www.b4x.com/android/forum/t...lest-way-to-distribute-ui-apps.99835/#content)

2. Install Xcode 12: https://developer.apple.com/download/more/
Xcode 11 will also work, however you need to disable dark mode for now:
B4X:
#PlistExtra: <key>UIUserInterfaceStyle</key><string>Light</string>

2.5. You need to run Xcode at least once. Approve installation of additional components when asked.
3. Download and unzip the B4i-Builder.
4. Open a terminal and navigate to B4i-Builder folder.
5. Run it with: java -jar B4iBuildServer.jar
6. Set the builder IP address in the IDE under Tools - Build Server - Server Settings

Notes & Tips

-
By default ports numbers 51041 (http) and 51042 (https) are used.
- The firewall should be either disabled or allow incoming connections on these two ports.
- You can test that the server is running by going to the following link: http://<server ip>:51041/test
- You can kill the server with: http://<server ip>:51041/kill
- It is recommended to set your Mac server ip address to a static address. This can be done in your router settings or in the Mac under Network settings.
- A single Mac builder can serve multiple developers as long as they are all connected to the same local network. Note that you are not allowed to host builders for developers outside of your organization.

Multiple IPs

When the server is started it takes the first IP address reported by the OS and uses it as its own IP address. You can see this address in the server messages.
In most cases this is the correct address. However if it is not the correct IP address then the server will not be usable.
In that case you need to explicitly set the correct address:
- Open the key folder and delete all files.
- Edit key.txt and change it to:
B4X:
manual:<correct ip address>
For example:
manual:192.168.0.199

Troubleshooting

BuildServer v1.02 includes a new test page which provides information about the server, including the SSL key ip address and the libraries versions.
You can access this page with: <Mac ip>:51041/test
For example see the page of one of the online builders: http://63.135.170.51:51041/test

The SSL Key IP address must match the address that you are using in the IDE.
If you are running an older version of the build server then you can download v1.02 from the same link as before.
 
Last edited:

manolitoGnet

Member
Licensed User
Hi,

I'm doing something wrong, any idea?

B4i Build Server
Build server is running.
Version: 2.8
Server time: 23:04:05
Mac SSL Key
Invalid key!!! <---------------------
SSL port: 51042
h files
  • iAd: 1.00
  • iAdMob: 1.33
  • iAnalytics: 1.0
  • iArchiver: 1.01... etc.
Same response via http :51041 as https :51042

Thanks in advance!
 

manolitoGnet

Member
Licensed User
This by itself doesn't mean that there is an error. Are you able to compile?

Yes. Everything works fine over Simulator.

The problem comes with the real device and using the test page I'v seen this 'error'.

If you think it's not related I will continue to work trying to install Bridge on the iPad.

Tx
 

manolitoGnet

Member
Licensed User
SOLVED!!!

I had renewed every certificate except iPad one.

Now a little trouble with Simulator, but compiling and running on iPad!!!

Start the builder and make sure that it prints the correct ip address.
MacNolito:macserver28 rsan$ java -jar B4iBuildServer.jar

Build server version: 2.8

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

2016-08-03 16:56:38.165:INFO::main: Logging initialized @403ms

Loading default configuration file.

AppPath=/Users/rsan/macserver28

Forcing ip address to: 192.168.1.15 <----------- works in the same way without forcing

2016-08-03 16:56:38.336:INFO:eek:ejs.Server:main: jetty-9.3.z-SNAPSHOT

2016-08-03 16:56:38.402:INFO:eek:ejsh.ContextHandler:main: Started o.e.j.s.ServletContextHandler@17c68925{/,file:///Users/rsan/macserver28/www,AVAILABLE}

2016-08-03 16:56:38.406:INFO:eek:ejs.AbstractNCSARequestLog:main: Opened /Users/rsan/macserver28/logs/b4j-2016_08_03.request.log

2016-08-03 16:56:38.442:INFO:eek:ejs.ServerConnector:main: Started ServerConnector@732de9e5{HTTP/1.1,[http/1.1]}{0.0.0.0:51041}

2016-08-03 16:56:38.507:INFO:eek:ejus.SslContextFactory:main: x509=X509@73f792cf(rootca,h=[],w=[]) for SslContextFactory@2ed94a8b(file:///Users/rsan/macserver28/key/key.jks,null)

2016-08-03 16:56:38.508:INFO:eek:ejus.SslContextFactory:main: x509=X509@38082d64(jetty,h=[192.168.1.15],w=[]) for SslContextFactory@2ed94a8b(file:///Users/rsan/macserver28/key/key.jks,null)

2016-08-03 16:56:39.127:INFO:eek:ejs.ServerConnector:main: Started ServerConnector@704921a5{SSL,[ssl, http/1.1]}{0.0.0.0:51042}

2016-08-03 16:56:39.128:INFO:eek:ejs.Server:main: Started @1377ms

Build server is ready

https://192.168.1.15:51042 <----------- Correct and /test works

http://192.168.1.15:51041

Build server version: 2.8

===========================

B4i version: 2.80
Parsing code. (0.00s)
Compiling code. (0.05s)
Compiling layouts code. (0.00s)
Compiling debugger engine code. (0.84s)
Building Xcode project (0.02s)
Sending data to remote compiler. Error
Error: security: SecKeychainDelete: The specified keychain could not be found.

Out: Build settings from command line:
ARCHS = armv7
CODE_SIGN_IDENTITY = iPhone
CONFIGURATION_BUILD_DIR = /Users/<user id>/macserver28/UploadedProjects/<user id>/Payload
OTHER_CODE_SIGN_FLAGS = —keychain <user id>
PRODUCT_NAME = B4i Example
PROVISIONING_PROFILE = f22e0b5a-8d69-4315-9b10-56bd4117d54e

=== BUILD TARGET B4iProject OF PROJECT B4iProject WITH CONFIGURATION Release ===

Check dependencies
Code Sign error: No codesigning identities found: No codesigning identities (i.e. certificate and private key pairs) that match the provisioning profile specified in your build settings (“AppID para 32rsm”) were found.


Error: ** BUILD FAILED **


The following build commands failed:
Check dependencies
(1 failure)
 
Last edited:

SoftTech

New Member
Licensed User
Hi Erel

this is a newbie question, Yesterday I bought B4i. I'm using my mac locally, I followed the tutorial and installed the macbuider, it's working fine, I test from my virtual windows machine and it's working.

The problem is when I try to build the Bridge, this process requires a key and in the tutorial the key is generated using the apple developer account. In your site advertising it's say the following->

Requirements
  • Apple developer account (costs $99 per year).
  • An iOS device running iOS 7+.
The compilation process requires a Mac computer. You can either use a local Mac computer or use our Hosted Mac Builder service (currently costs $26 per year). Note that if you use a local Mac computer then you can develop with the iOS simulator which does not require an Apple developer account.

How I can create the key without the apple developer account? do you have any tutorial about it?

Thanks
 

bromie2008

Member
Licensed User
Hi Erel;
I'm newbie here;
Last week i'm already purchased b4A and B4i plus with hosted mac builder. For B4A its work fine. For b4i i dont know how to install or setup for hosted mac builder. I'm using windows base not a mac. Please:confused:
 

bromie2008

Member
Licensed User
Thanks Erel;

upload_2016-9-5_16-45-50.png


Keys Folder its for what? Do i need to Enroll Apple Developer before i test the output of the B4i program?
 

karyadi

Member
Licensed User
Hi all,
i use B4i ver 3.01 and i have mac os 10.10.5 and xcode 6.4,
can i use mac os 10.10.5 and xcode 6.4 for local mac builder?

thanks
 
Status
Not open for further replies.
Top