Подтвердить что ты не робот

Двоичные отклонили из-за недействительной символической ссылки, каких-либо идей?

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

Invalid Symlink - Your package contains a symbolic link 'PlugIns/$REDACTED_WATCHKIT_EXTENSION_TARGET_NAME$.appex/$REDACTED_WATCHKIT_EXTENSION_TARGET_NAME$.appex' which resolves to a location '/Users/$REDACTED_USER$/Library/Developer/Xcode/DerivedData/Seta-ctfzptralingvtbxhssdlkkzkclw/Build/Intermediates/ArchiveIntermediates/Seta/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/$REDACTED_WATCHKIT_EXTENSION_TARGET_NAME$.appex' that does not exist or is outside of the package.

Я попытался воспроизвести ошибку, создав пустой проект Xcode с теми же настройками, что и наш проект, но я не смог получить ту же ошибку из iTunes Connect. Кто-нибудь знает, почему создается символическая ссылка? Я проверил пустой проект .ipa, и он не содержит эту символическую ссылку в этом пути, так что явная ошибка, но я не могу найти настройку/конфигурацию сборки, которая создает символическую ссылку.

Я проверил вывод xcodebuild и нашел следующее:

SymLink build/SetaWatchKitExtension.appex /Users/$REDACTED_USER$/Library/Developer/Xcode/DerivedData/Seta-ctfzptralingvtbxhssdlkkzkclw/Build/Intermediates/ArchiveIntermediates/Seta/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/SetaWatchKitExtension.appex
    cd $REDACTED_PROJECT_PATH$
    export PATH="/Applications/Xcode-7.1.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode-7.1.app/Contents/Developer/usr/bin:$REDACTED_PATH_ENV_VARIABLE$"
    /bin/ln -sfh /Users/$REDACTED_USER$/Library/Developer/Xcode/DerivedData/Seta-ctfzptralingvtbxhssdlkkzkclw/Build/Intermediates/ArchiveIntermediates/Seta/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/$REDACTED_WATCHKIT_EXTENSION_TARGET_NAME$.appex /Users/$REDACTED_USER$/Documents/$REDACTED_PATH$/build/$REDACTED_WATCHKIT_EXTENSION_TARGET_NAME$.appex

Кажется, все в порядке, но почему-то эта символьная ссылка попадает внутрь .ipa, что неправильно. Это происходит после создания структуры продукта и перед CompileSwiftSources во время целевого шага сборки расширения watchkit.

Любые подсказки или помощь приветствуются. Я использую Xcode 7.1.

4b9b3361

Ответ 1

Нам пришлось использовать билет DTS, и мы получили от Apple следующий ответ:

Thank you for contacting Apple Developer Technical Support (DTS).

The issue seems to happen when you pass CONFIGURATION_BUILD_DIR=$PWD/build to the xcodebuild command. Instead, try removing CONFIGURATION_BUILD_DIR from the xcodebuild command, and instead, change your build location in your Workspace settings. Follow these steps:

1. In the xcodebuild command, remove CONFIGURATION_BUILD_DIR=$PWD/build
2. Open your Workspace in Xcode
3. Select File > Workspace Settings
4. Click the Advanced button
5. Select Custom > Relative to Workspace
6. Click the Done buttons

This will cause the build products to still go in your build directory, and the symlink in the WatchKit Extension is no longer created.

Это работает, печально то, что эти настройки не могут быть применены средствами командной строки, Xcode создает файл по следующему пути:

Project.workspace/xcuserdata/$USER.xcuserdatad/WorkspaceSettings.xcsettings

И, очевидно, вы не хотите добавлять этот путь к своей VCS, поэтому я создал небольшой ruby ​​ script для нашего CI, чтобы добавить правильные настройки и избежать этого:

settingsFilePath = "#{ENV["PWD"]}/Project.xcworkspace/xcuserdata/#{ENV["USER"]}.xcuserdatad"
FileUtils.mkpath(settingsFilePath)

settings = {'BuildLocationStyle' => 'CustomLocation', 'CustomBuildIntermediatesPath' => 'Build/Intermediates', 'CustomBuildLocationType' => 'RelativeToWorkspace', 'CustomBuildProductsPath' => 'Build/Products'}
File.open("#{settingsFilePath}/WorkspaceSettings.xcsettings", 'w') { |file| file.write(settings.to_plist) }

Ответ 2

Попробуйте открыть файл .xcarchive(window- > organizer- > select archive- > right click- > show in finder).

Найдите любые символические ссылки и попытайтесь понять, почему они появляются там.

Это может быть проблема, связанная с cocoapods (если вы используете контейнеры). Попробуйте обновить cocoapods.