Tutorial: iOS RuuviTag listener - I cannot get past first base

I am keen to attempt a simple Xcode experiment to read acceleration data from the Ruuvi pro and dislay it on an iphone. I would like to manipulate the data and display it but havent got that far.
I have followed the tutorial and installed Cocoapods ok. I can then modify the Podfile ok. When I run “pod install” I do not have the result expected. It is below

Last login: Sun Feb 6 15:02:09 on ttys000
trevorbird@192-168-1-103 ~ % pod install
Analyzing dependencies
Downloading dependencies
Generating Pods project
Integrating client project
/Library/Ruby/Gems/2.6.0/gems/ethon-0.15.0/lib/ethon/curls/classes.rb:36: [BUG] Illegal instruction at 0x0000000104880000
ruby 2.6.8p205 (2021-07-07 revision 67951) [universal.arm64e-darwin21]

– Crash Report log information --------------------------------------------

  • See Crash Report log file under the one of following: *
  • * ~/Library/Logs/DiagnosticReports                                     *
    
  • * /Library/Logs/DiagnosticReports                                      *
    
  • for more details. *
    *Don’t forget to include the above Crash Report log file in bug reports. *

– Control frame information -----------------------------------------------
c:0043 p:---- s:0241 e:000240 CFUNC :getdtablesize
c:0042 p:0050 s:0237 e:000236 CLASS /Library/Ruby/

and lots of other lines of Control Frame information.

I figure I must be doing something very wrong. I was having little success with the podfile set out in the tutorial like this

platform :ios, ‘10.0’
use_frameworks!target ‘RuuviTag’ do
pod ‘BTKit’, ‘~> 0.0.21’
end

It seemed to have a syntax error until changed to this

platform :ios, ‘10.0’
use_frameworks!
target ‘RuuviTag’ do
pod ‘BTKit’, ‘~> 0.0.21’
end

I have changed from textedit to sublime text in case some hidden access codes appeared but that has not helped.

I changed to what I think is the latest version like this

platform :ios, ‘13.0’
use_frameworks!
target ‘RuuviTag’ do
pod ‘BTKit’, ‘~> 0.3.2’
end

Anyway I am struggling to get past first base with this tutorial and would like to know if anything is obviously wrong to other programmers. I would like to get to the stage of producing a .xcworkspace file that I can launch from but at this tage havent got that far.

Kind regards and thanks for reading this far,

Trevor

Gut feeling: General Apple-ARM related problem with Cocoapods/Ruby, not specific to the ruuvi pod.
Maybe this thread is helpful: CocoaPods Fails On Apple Silicon | Apple Developer Forums

1 Like

Many thanks for the reply NoHalfBits. I am using a new M1 processor Macbook Air so that may be the problem. Quickly tried to resolve issue but failed. Might try going back to an older Mac Air and see how I go. Lost a lot of time on this so may also just lick my wounds and move on.

I ran into a similar problem with a different Ruby-based software on my M1-Mac roughly a year ago, so this may be outdated… but, iirc, the problem was that the Apple supplied Ruby was compiled with a special architecture (‘arm64e’ as opposed to ‘arm64’), which was (is?) only available for Apple, not third party software or -modules. Basically the installed arm64e-Ruby tries to run with arm64 extensions (from Cocoapods?) and crashes.

The unsatisfactory-but-working solution back then was to run everything as intel (no joke), either by running Terminal.app under Rosetta2 (via the checkbox in the Finder info for Terminal), or by using the arch -x86 _64 wrapper mentioned in the linked Apple developer forum thread.

But that was a year ago when the M1 was still rather fresh; one would hope that there is a better solution by now. Maybe look for discussions specifically about cocoapods and the M1…

1 Like