#!/bin/bash # iOS 签名设置助手脚本 set -e # 颜色输出 RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' # No Color # 日志函数 log_info() { echo -e "${BLUE}[INFO]${NC} $1" } log_success() { echo -e "${GREEN}[SUCCESS]${NC} $1" } log_warning() { echo -e "${YELLOW}[WARNING]${NC} $1" } log_error() { echo -e "${RED}[ERROR]${NC} $1" } # 检查证书 check_certificates() { log_info "检查已安装的证书..." local identities=$(security find-identity -v -p codesigning 2>/dev/null) if [ -n "$identities" ] && echo "$identities" | grep -q "iPhone Developer\|Apple Development"; then log_success "找到可用的开发证书:" echo "$identities" | grep "iPhone Developer\|Apple Development" return 0 else log_warning "未找到可用的开发证书" return 1 fi } # 安装证书 install_certificate() { local cert_file=$1 if [ -z "$cert_file" ]; then log_error "请提供证书文件路径" return 1 fi if [ ! -f "$cert_file" ]; then log_error "证书文件不存在: $cert_file" return 1 fi log_info "安装证书: $cert_file" # 安装证书到钥匙串 security import "$cert_file" -k ~/Library/Keychains/login.keychain if [ $? -eq 0 ]; then log_success "证书安装成功" else log_error "证书安装失败" return 1 fi } # 打开 Apple Developer Portal open_developer_portal() { log_info "打开 Apple Developer Portal..." # 打开 App IDs 页面 open "https://developer.apple.com/account/resources/identifiers/list" # 打开 Profiles 页面 open "https://developer.apple.com/account/resources/profiles/list" log_info "请在浏览器中完成以下步骤:" echo "1. 创建 App ID (Bundle ID: com.bearvpn.app)" echo "2. 创建 Provisioning Profile" echo "3. 下载并安装 Provisioning Profile" } # 验证完整设置 verify_setup() { log_info "验证签名设置..." # 检查证书 if ! check_certificates; then log_error "证书检查失败" return 1 fi # 检查 Provisioning Profile local profiles_dir="$HOME/Library/MobileDevice/Provisioning Profiles" if [ -d "$profiles_dir" ] && [ "$(ls -A "$profiles_dir" 2>/dev/null)" ]; then log_success "找到 Provisioning Profile" ls -la "$profiles_dir" else log_warning "未找到 Provisioning Profile" log_info "请确保已下载并安装了 Provisioning Profile" fi return 0 } # 显示使用说明 show_instructions() { log_info "iOS 签名设置说明" echo "==========================================" echo "1. 证书安装:" echo " - 双击桌面上的 .cer 文件安装到钥匙串" echo " - 或运行: ./setup_ios_signing.sh install ~/Desktop/your_cert.cer" echo "" echo "2. 创建 App ID:" echo " - Bundle ID: com.bearvpn.app" echo " - 选择需要的功能(如 Network Extensions)" echo "" echo "3. 创建 Provisioning Profile:" echo " - 选择 iOS App Development" echo " - 选择刚创建的 App ID" echo " - 选择您的证书" echo " - 下载并双击安装 .mobileprovision 文件" echo "" echo "4. 验证设置:" echo " - 运行: ./setup_ios_signing.sh verify" echo "" echo "5. 构建签名应用:" echo " - 运行: source ios_signing_config.sh" echo " - 运行: ./build_ios_dmg.sh" echo "==========================================" } # 主函数 main() { case "${1:-}" in "install") if [ -z "$2" ]; then log_error "请提供证书文件路径" echo "用法: $0 install " exit 1 fi install_certificate "$2" ;; "verify") verify_setup ;; "open") open_developer_portal ;; "check") check_certificates ;; *) show_instructions ;; esac } # 运行主函数 main "$@"