Объединение статических фреймворков в единый динамический фреймворк - PullRequest
1 голос
/ 16 марта 2019

В настоящее время я использую Carthage в качестве менеджера зависимостей для загрузки некоторых фреймворков. Эти фреймворки - это Alamofire, ObjectMapper & Result. Затем я использую скрипт, который строит каждую цель фреймворка как статическую фреймворк, используя следующую конфигурацию проекта. Вы можете увидеть скрипт ниже.

xcconfig=$(mktemp /tmp/static.xcconfig.XXXXXX)
trap 'rm -f "$xcconfig"' INT TERM HUP EXIT

echo "LD = $PWD/./ld.py" >> $xcconfig
echo "ARCHS = x86_64 i386 arm64 armv7 armv7s" >> $xcconfig
echo "DEBUG_INFORMATION_FORMAT = dwarf" >> $xcconfig
echo "IPHONEOS_DEPLOYMENT_TARGET = 8.0" >> $xcconfig
echo "ENABLE_BITCODE = NO" >> $xcconfig

export XCODE_XCCONFIG_FILE="$xcconfig"

carthage build "$@"

Это нормально и выдает следующее, когда я хочу проверить, действительно ли фреймворк статичен.

Alamofire: Mach-O universal binary with 5 architectures: [arm_v7:current ar archive] [arm64]
Alamofire (for architecture armv7): current ar archive
Alamofire (for architecture armv7s):    current ar archive
Alamofire (for architecture i386):  current ar archive
Alamofire (for architecture x86_64):    current ar archive
Alamofire (for architecture arm64): current ar archive

Итак, я следовал руководству по Карфагену о том, как объединить статические фреймворки в более крупную динамическую фреймворк, чтобы я мог распространять фреймворк с Alamofire, ObjectMapper & Result, это снимает с меня ответственность разработчик.

Но после выполнения этих шагов, я, кажется, получаю следующую ошибку всякий раз, когда я пытаюсь построить или заархивировать проект и связать мою новую динамическую среду.

ld: can't map file, errno=22 file '/xxxxx/xxxx/xxxx/Testing Frameworks/Valid Frameworks/MyDependencies.framework' for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Как я могу решить эту проблему и объединить статические фреймворки в динамическую, чтобы сторонние разработчики всегда были доступны во время сборки / выполнения, а также при распространении фреймворка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...