2017-04-10 2 views
0

프레임 워크로 CocoaLumberjack을 구현하려고하는데 시뮬레이터에서 제대로 작동하지만 내 iPhone에서이 코드를 사용하려고하면이 오류가 발생합니다. :iOS : dyld : 라이브러리가로드되지 않았습니다. @ rpath/CocoaLumberjack.framework/CocoaLumberjack

dyld: Library not loaded: @rpath/CocoaLumberjack.framework/CocoaLumberjack 
    Referenced from: /var/containers/Bundle/Application/3EF12D55/myApp.app/CocoaLumberjackSample 
    Reason: image not found 

왜 시뮬레이터와 장치의 차이점을 알고 있습니까?

정말 감사드립니다.

답변

2

음, 차이는 간단하다 : 당신이 시뮬레이터에서 응용 프로그램을 실행 할 때마다

는, 예를 들어, 같은 빌드 폴더에 프레임 워크를 다른 빌드 제품에 액세스 할 수 있습니다. 그래서 시뮬레이터에서이 문제가 발생하지 않습니다. iOS 기기에서는 Xcode가 실제 앱 번들 만 기기에 복사하기 때문에 다른 이야기입니다. 따라서 작동시키기 위해서 CocoaLumberjack.framework를 Embed Frameworks 빌드 단계에 추가해야합니다. 그러면 프레임 워크가 앱 번들의 하위 폴더 Frameworks에 복사되어 앱 바이너리가 찾을 수 있습니다. 당신이 Embed Frameworks 빌드 단계가없는 경우

enter image description here

당신은 빌드 단계 탭의 왼쪽 상단에있는 추가 버튼을 통해 New Copy Files Build Phase을 추가 한 다음 대상으로 Frameworks를 선택할 수 있습니다. 다른 옵션은 일반 탭을 선택하고 아래로 스크롤 한 다음 프레임 워크를 Embedded Binaries 섹션 아래에 추가하는 것입니다.

+0

Xcode 8.3.1에서 Embed FrameWorks 옵션을 어떻게 추가합니까? – user2924482

+0

빌드 단계 탭의 왼쪽 상단에있는 추가 버튼을 통해 새로운 복사 빌드 단계를 추가 한 다음 대상으로 '프레임 워크'를 선택할 수 있습니다. 다른 옵션은 General 탭을 선택하고 아래로 스크롤 한 다음 프레임 워크를 'Embedded Binaries'섹션에 추가하는 것입니다. –