Ето един пример на чисто bash-скрипт (с вградено Ruby), който за даден Xcode проект и за конфигурация Release променя настройките на signing на Automatically и задава DEVELOPMENT_TEAM според подадена променлива.
Скрипт:
!/usr/bin/env bash
usage: ./set_signing.sh [CONFIG_NAME]
пример: ./set_signing.sh ABCDE12345 ./MyApp.xcodeproj Release
if [ $# -lt 2 ]; then
echo "Usage: $0
exit 1
fi
TEAM_ID="$1"
PROJECT_PATH="$2"
CONFIGURATION="${3:-Release}"
Проверка дали проектът съществува
if [ ! -d "$PROJECT_PATH" ]; then
echo "Error: project not found at $PROJECT_PATH"
exit 1
fi
Проверка за ruby-библиотеката xcodeproj
if ! ruby -e "require 'xcodeproj'" &> /dev/null; then
echo "Missing gem 'xcodeproj'. Install with: gem install xcodeproj"
exit 1
fi
Вграждане на Ruby код за модификация на .pbxproj
ruby <<RUBY
require 'xcodeproj'
proj = Xcodeproj::Project.open("$PROJECT_PATH")
changed = false
proj.targets.each do |t|
t.build_configurations.each do |conf|
if conf.name == "$CONFIGURATION"
conf.build_settings["CODE_SIGN_STYLE"] = "Automatic"
conf.build_settings["DEVELOPMENT_TEAM"] = "$TEAM_ID"
changed = true
puts "[+] #{t.name} (#{conf.name}): set CODE_SIGN_STYLE=Automatic, DEVELOPMENT_TEAM=#{$TEAM_ID}"
end
end
end
if changed
proj.save
puts "[✓] Saved changes to #{proj.path}"
else
puts "[!] No configurations named '#{$CONFIGURATION}' found."
end
RUBY
exit 0
Как работи:
- Приема два (по избор три) аргумента:
- TEAM_ID – вашият Apple Development Team ID
- PROJECT_PATH – път до .xcodeproj папката
- CONFIGURATION – име на конфигурацията (по подразбиране Release)
След като скриптът е готов, го направете изпълним (chmod +x set_signing.sh) и го викайте така:
./set_signing.sh ABCDE12345 ./MyApp.xcodeproj Release