Swift 다른 번들(TARGETS) 파일 위치 찾는 방법.

1 답변 글타래를 보이고 있습니다
  • 글쓴이
    • tkdgud0222
      참가자
      • 글작성 : 3
      • 답글작성 : 2

      안녕하세요

      현재 Swift 프레임워크를 Objective-C 프로젝트에 import 시켜 사용하고 있습니다.

       

      환경

      Objective-C 프로젝트에 TARGETS(번들)가 2개 이며 프로젝트 내 test.lic 파일을 찾아야 하는 상황입니다.

      현재 Swift 프레임워크에 작성한 Bundle.main.path(forResource: “test”, ofType: “.lic”)로 objective-c 에서 파일 위치를 찾아오고 있습니다.

       

      질문

      test.lic을 objective-c프로젝트에 추가할 당시 발생한 Add to targets 선택란에 해당 targets 중 main target 선택하여 추가 시 정상적으로 Swift 파일찾는 코드가 적용되는데

      Add to targets 선택란에 main target이 아닌 다른 target(번들)을 선택 후 추가하여 테스트 진행 시 파일위치를 찾지 못합니다.

      다른 target(번들)을 선택 후 test.lic을 추가한 경우 Swift 프레임워크에서 해당 test.lic의 파일 위치를 찾는 방법 질문드립니다.

       

    • 야곰
      키 마스터
      • 글작성 : 37
      • 답글작성 : 579

      어떤 상황인지 정확하게 잘 모르겠습니다ㅜㅜ 제가 이해력이 부족한 것인지… 죄송합니다ㅜ

      • tkdgud0222
        참가자
        • 글작성 : 3
        • 답글작성 : 2

        제가 제작한 Swift 프레임워크에 Bundle.main.path(forResource: “test”, ofType: “.lic”)라는 코드가 작성되어 있으며

        이 Swift프레임워크를 Objective-C 프로젝트에 import 하여 Objective-C 프로젝트 내 해당 파일을 가져와 사용하려 합니다.

         

        질문

        현재 Objective-c 프로젝트에 각 다른 타겟(번들)이 2개가 있으며

        테스트 해보니 번들(타겟)이 2개 이상일 경우 프로젝트 내  파일이나 프레임워크 추가 시 Choose options for adding these files: 라는 선택란이 나오게 되는데 이 부분에 맨 하단에 

        Add to targets: 선택란에  번들(타겟)을 선택할 수 있는 선택란이 있었습니다.

        편의상 각 1번 번들 (프로젝트 제작 시 기본적으로 함께 생성되었던 main번들),  2번 번들(추가적으로 테스트 위해 생성한 번들)이라고 하겠습니다.

         

        1번 번들에 Swift프로젝트를 Objective-C 프로젝트에 import 하고 Add to targets: 또한 1번 프로젝트를 선택한 후

        test.lic 파일을 Objective-C 프로젝트 2번 번들에 위치시키고 Add to targets:를 1번 번들을 선택하면 Bundle.main.path가 정상적으로 파일을 가져오는데

        test.lic 파일을 Objective-C 프로젝트 2번 번들에 위치시키고 Add to targets:를 2번 번들을 선택하면 파일을 가져오지 못합니다.

        아마 타겟이 main에 위치하지 않아서 Bundle.mail.path 가 위치를 가져오지 못하는 문제 같은데

         

        위 상황에서 test.lic 파일을 2번 번들에 위치하고 Add to targets: 를 2번 번들을 선택 한 후 파일을 가져올 수 있는 방법이 있는지 질문드립니다..ㅠㅜ

         

         

        • 야곰
          키 마스터
          • 글작성 : 37
          • 답글작성 : 579

          https://developer.apple.com/documentation/foundation/bundle
          문서를 찾아보니 main 번들 외에 allBundles 프로퍼티를 사용해서 모든 번들을 가져올 수 있는데, 이를 활용해보심은 어떠실까요?

          • tkdgud0222
            참가자
            • 글작성 : 3
            • 답글작성 : 2

            먼저 답변 주셔서 너무 감사드립니다!

             

            말씀해 주신 내용으로 이전에 테스트 해본 결과

            Bundle.allBundles 를 통해 번들정보를 모두 받아온 후 test.lic를 찾는 코드를 작성 후 테스트 진행해 보았는데

            제가 test.lic 파일을 프로젝트에 추가 시 나오는 Add to targets: 선택란에서 main번들이 아닌 2번 번들로 추가 시

            allBundles에 해당 2번 번들정보가 나오지 않았습니다.

            allBundles로 나온 번들은 아래와 같으며 test.lic 파일 타겟을 메인번들로하지 않고 타겟을 2번으로 파일 추가 시 allBundles 로 나오는 번들 정보 또한 이전과 동일하게 메인번들인 것 같습니다.

            com.test.test01  <==== 메인 번들

            com.apple.AGXMetalA12

            com.apple.uikit.BoundingPathData

            com.apple.CoreGlyphs

             

            • 이 답변은 tkdgud0222에 의해 3 months, 2 weeks 전에 수정됐습니다.
1 답변 글타래를 보이고 있습니다
  • 답변은 로그인 후 가능합니다.

logo landscape small

사업자번호 : 743-81-02195
통신판매업 신고번호 : 제 2022-충북청주-1278 호
고객센터 : 카카오톡채널 @yagom