다른 링커 플래그에 -all_load이 추가되나요? 그렇다면 somelib.a라고 가정하고 이 플래그를 추가하도록 요청하는 모든 라이브러리를 찾은 다음 이 플래그를 삭제하고 다른 플래그를 사용하십시오.
-force_load $(PROJECT_DIR)/path/to/somelib.a
이유: 정적 라이브러리에 카테고리가 있는 경우 링커에게 이러한 카테고리를 로드하도록 지시하려면 -ObjC이 필요합니다. 그러나 64비트 시스템에서는 -ObjC에 버그가 있습니다. 카테고리만 포함된 정적 라이브러리는 로드되지 않으므로 이 버그를 해결하기 위해 -all_load 및 -force_load이 도입되었습니다. -all_load 및 -force_load은 모두 모든 파일에 직접적으로 작용한다는 점을 제외하면 동일한 효과를 갖습니다. Force는 매개변수를 추가해야 하며 매개변수가 있는 파일에만 작용합니다. -all_load 추가를 요청하는 SDK에는 카테고리가 있어야 합니다.
CocoPods를 사용하여 종속 라이브러리를 가져오면 이러한 문제가 해결됩니다.
다른 링커 플래그에
-all_load
이 추가되나요? 그렇다면 somelib.a라고 가정하고 이 플래그를 추가하도록 요청하는 모든 라이브러리를 찾은 다음 이 플래그를 삭제하고 다른 플래그를 사용하십시오.-force_load $(PROJECT_DIR)/path/to/somelib.a
이유: 정적 라이브러리에 카테고리가 있는 경우 링커에게 이러한 카테고리를 로드하도록 지시하려면
-ObjC
이 필요합니다. 그러나 64비트 시스템에서는-ObjC
에 버그가 있습니다. 카테고리만 포함된 정적 라이브러리는 로드되지 않으므로 이 버그를 해결하기 위해-all_load
및-force_load
이 도입되었습니다.-all_load
및-force_load
은 모두 모든 파일에 직접적으로 작용한다는 점을 제외하면 동일한 효과를 갖습니다. Force는 매개변수를 추가해야 하며 매개변수가 있는 파일에만 작용합니다.-all_load
추가를 요청하는 SDK에는 카테고리가 있어야 합니다.