2013-08-14 2 views
0

내가RubyMotion : SecKeychainFindGenericPassword 및 유형에 대한 포인터 설명을 찾을 수 없습니다 '^'

내가이 시도 OS X에 rubyMotion, 와 키 체인에서 암호를 검색하기 위해 노력하고있어 :

# passsword_data_pointer=Pointer.new(:object) #works but empty password 
# password_data_pointer=Pointer.new('^') #makes ruby crash and complain 'Can't find pointer description for type '^' 
    password_data=NSMutableData.new #works but empty password 

    password_length = Pointer.new('I') 
    result=SecKeychainFindGenericPassword (
              nil, 
              "some_service_string".length, 
              "some_service_string", 
              "some_username_string".length, 
              "some_username_string", 
              password_length, 
              password_data_pointer,#or password_data.bytes 
              nil 
              ) 

# password_string=NSMutableData.dataWithBytes(password_data.bytes, length:password_length[0]) 
    password_string=NSMutableData.dataWithBytes(password_data_pointer, length:password_length[0]) 

    p password_string 

내가하는 일과 상관없이 비밀번호를 가져올 방법이 없습니다.

도와주세요. 나이를 검색하면 인터넷은 macruby 또는 cocoa 또는 c 예제로 가득 차 있지만이 주제에 대한 루비 모션에는 아무 것도 없습니다.

답변

1

저는 SecKeychainFindGenericPassword에 익숙하지 않지만 RubyMotion Project Management Guide에서 논의 된대로 키 체인을 사용하려면 적절한 자격을 설정해야한다는 것을 알고 있습니다.

그래서 당신은 당신이 당신의 Rakefile에 다음과 같은 라인을 가지고 있는지 확인하십시오 : 당신은 키 체인에 더 좋은 인터페이스를 원하는 경우

app.entitlements['keychain-access-groups'] = [ 
    app.seed_id + '.' + app.identifier 
] 

, 나는 Cocoapods를 통해 끌어 당겨 할 수 SSKeychain 코코아 래퍼를 사용합니다. Rakefile에서 또한

gem 'cocoapods',  '~> 0.23.0' 
gem 'motion-cocoapods', '~> 1.3.6' 

: 당신의 Gemfile에

class CredentialStore 
    SERVICE = 'YOUR_APP_NAME' 

    def set_secure_value(value, for_key: key) 
    if value 
     SSKeychain.setPassword(value, forService: SERVICE, account: key) 
    else 
     SSKeychain.deletePasswordForService(SERVICE, account: key) 
    end 
    end 

    def secure_value_for_key(key) 
    SSKeychain.passwordForService(SERVICE, account: key) 
    end 
end 
을 : 여기

app.pods do 
    pod 'SSKeychain', '~> 1.2.0' 
end 

내가 SSKeychain 민감한 데이터를 저장 및 검색에 사용하는 래퍼의 단순화 된 버전입니다

추가 질문이 있으면 알려주십시오. 행운을 빕니다!

+0

shiming in에 감사드립니다. OS X을 타겟팅하는 것이 더 명확해야합니다! – MichaelC

+0

아, 잡았다. SSKeychain을 사용하면 좋습니다. Mac OSX 또는 iOS와 호환됩니다. – Devon

관련 문제