BubbleWrap :: HTTP falha aleatoriamente com KERN_INVALID_ADDRESS

Eu estava tendo um problema em que, de vez em quando, BubbleWrap :: HTTP falhava com a seguinte mensagem de erro:

Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_INVALID_ADDRESS at address: 0xc07eac99

Aqui está um exemplo extremamente simplificado do código que eu estava usando:

api = Foo::Apps.new
api
.list do |apps|
# Use apps result
end

module Foo
class Apps
# ...

def list(&block)
BW
::HTTP.get('http://bar.com/apps') do |response|
if response.ok?
json
= BW::JSON.parse(response.body.to_s)
block
.call(json)
else
App.alert 'An error has occurred.'
end
end
end

# ...
end
end

O erro ocorreria na chamada BW :: HTTP.get () e, como se constatou, esse é um problema do próprio RubyMotion.

A solução é simples:

Converta os objetos atribuídos para @instance_variables da maneira que o RubyMotion funciona atualmente, você às vezes precisa fazer isso para reter os callbacks.

@api = Foo::Apps.new
@api.list do |apps|
# Use apps result
end

GH Issue
BW Docs