From 51223f7079b05b9baf45e494ef929a364e82e91c Mon Sep 17 00:00:00 2001 From: alexandrev-tibco Date: Tue, 30 Jun 2026 17:10:59 +0200 Subject: [PATCH] chore: versionado por variables, fix bug .p8 en script de upload y .gitignore MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Info.plist (app + widget): CFBundleShortVersionString -> $(MARKETING_VERSION), CFBundleVersion -> $(CURRENT_PROJECT_VERSION). Antes estaban hardcodeados, lo que obligaba a editar 3 sitios por release y causó el rebote de build (subía 41). - archive_and_upload_appstore.sh: find_p8_file ahora asigna la variable global P8_PATH en vez de devolverla por $(...); el trap EXIT que limpia el .p8 temporal ya no corre en un subshell, así que el fichero sobrevive hasta el upload (antes xcodebuild fallaba en -exportArchive con "-authenticationKeyPath ... existing file"). - .gitignore nuevo: build artifacts, credenciales (.p8/.mobileprovision), basura macOS y documentos personales. Destrackeados .DS_Store y UserInterfaceState.xcuserstate. Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_015qUZrBusG82T37R7PeokqJ --- .DS_Store | Bin 10244 -> 0 bytes .gitignore | 30 ++++++++++++++++++ .../UserInterfaceState.xcuserstate | Bin 14507 -> 0 bytes PortfolioJournal/.DS_Store | Bin 8196 -> 0 bytes PortfolioJournal/Assets.xcassets/.DS_Store | Bin 6148 -> 0 bytes PortfolioJournal/Resources/Info.plist | 4 +-- PortfolioJournalWidget/Info.plist | 4 +-- Scripts/archive_and_upload_appstore.sh | 18 +++++++---- 8 files changed, 45 insertions(+), 11 deletions(-) delete mode 100644 .DS_Store create mode 100644 .gitignore delete mode 100644 PortfolioJournal.xcodeproj/project.xcworkspace/xcuserdata/alexandrev.xcuserdatad/UserInterfaceState.xcuserstate delete mode 100644 PortfolioJournal/.DS_Store delete mode 100644 PortfolioJournal/Assets.xcassets/.DS_Store diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index 12e4aa237541fc835e44a460900da91ae56ab24a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10244 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 diff --git a/PortfolioJournal/.DS_Store b/PortfolioJournal/.DS_Store deleted file mode 100644 index 97a9bd9ef7359755cf7a42caffc055418250fc32..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8196 zcmeHMTWl0n7(U;$zzhuS6bcNo;6habZlDEhDJX0&C|IDS+tLfjvb!_V3DcRfGrL7= zwJ}7Ec!_V`AJs_I1o0Y8e1TvzY7Cg*0}sY)qQNH<6BGT^RG@%oOd25qTi; zK;(hQ1Ca+J56lD)(3{PRe3f@!NTW9LK;(h{r3d)^5U0v%GNfaI23H3)K?*>$oY+C3 zKIH*{O+2K@kd6r&n9`ggdq8N4FvWl{CwZK!6HSJ6Oi*FYAj}!Ul@Vqr2v#S%c%aUZ z6f|lh4@4fA>H(g+SF$F`+dXDZ$lu2~#Z=z0UFQgC^59cgCuw@jWd)X}OrQGMVQ(mF zyIGRHn;o((&#$fh3Q}45tl4v9S)M1~l^Sq|Q+~!Tc+Hvo0Y2(-T{~OqXR`Y(b2zP4 zx44d(z=O~gkUH`FHL zn>N;ujwd(?{(=$9=E)2sHUwFN~wLi>JXYpzJdVTY_&t+3Yz5Sk>_gjL=(wbKA%ubW$vWjLa&FJ-7 zv?MpI9zUSyKzY4lNo?hfYu9gT+}3hOTlU-}^=>

r#aXrbUaF z#Ce2mzO8v2jRL+U#Qr@F0`N}=nE?C&GA5z+g1+>+WwGVz^`(fM9I4$DHRf@dLtmRC zv{$J&$P_i&EHPZIu8}ETwAo^qh^><;LNzHEs&%oA3dNyTCWeVvgCc7XgDvW<3Pq$= zE{5CHCWY<-jRnJ4YwUKJf=at)Xurh1VL!58*&l@V3c|UL)u<(eZ^KUPC4_e(g>D=Q zF>YWG4u%4p--l5=fH6FXlXwhI;7P*zvjNs$#LIXEui_M5!`pZV@8NxXfU`J<^Y|E_ z5c)6TGJe3%_+=8N_fEt#ew!ZClb*_nMl)_yCU&Ir{C~&QfB&Cx`;Imgc_8w@wetYV zTT`vgG+*fjpFB0swc}I|Q{{#0jR_iw;uv1g z_|aaU{9Y2PnNnT5^p9+&}U;8z)-`$3`-dKL?V`s%=j zejjPPOh|$@y(I{xMbBbk5JymiNkufN!agyCNk_l5ah}D(ph*XzSH^kl%EG=-gkBx} zQip@^406j1Fawhe%$aVL>i_Zg@Bhgp?lA+*z)Ue9%18cD3%6uz>(u6`)=JbHR1%6S m41T1bp-VBwQYo&XYC*pw1JScs7(@>W{|IOrxM2qVl!14&;!|q? diff --git a/PortfolioJournal/Resources/Info.plist b/PortfolioJournal/Resources/Info.plist index 5172472..180cadc 100644 --- a/PortfolioJournal/Resources/Info.plist +++ b/PortfolioJournal/Resources/Info.plist @@ -17,7 +17,7 @@ CFBundlePackageType APPL CFBundleShortVersionString - 1.4.1 + $(MARKETING_VERSION) CFBundleURLTypes @@ -30,7 +30,7 @@ CFBundleVersion - 42 + $(CURRENT_PROJECT_VERSION) GADApplicationIdentifier ca-app-pub-1549720748100858~9632507420 GADDelayAppMeasurementInit diff --git a/PortfolioJournalWidget/Info.plist b/PortfolioJournalWidget/Info.plist index fe50bad..32695ab 100644 --- a/PortfolioJournalWidget/Info.plist +++ b/PortfolioJournalWidget/Info.plist @@ -15,9 +15,9 @@ CFBundlePackageType $(PRODUCT_BUNDLE_PACKAGE_TYPE) CFBundleShortVersionString - 1.4.1 + $(MARKETING_VERSION) CFBundleVersion - 42 + $(CURRENT_PROJECT_VERSION) ITSAppUsesNonExemptEncryption NSExtension diff --git a/Scripts/archive_and_upload_appstore.sh b/Scripts/archive_and_upload_appstore.sh index fd6637c..f14be78 100755 --- a/Scripts/archive_and_upload_appstore.sh +++ b/Scripts/archive_and_upload_appstore.sh @@ -33,37 +33,41 @@ fail() { exit 1 } +# Resuelve la clave .p8 y la deja en la variable global P8_PATH. +# IMPORTANTE: NO llamar con $(find_p8_file). El fichero temporal extraído de pass se +# limpia con un `trap EXIT`; si la función corre dentro de un subshell de sustitución +# de comandos, ese trap se dispara al cerrarse el subshell y borra el .p8 ANTES del +# export (xcodebuild fallaba con "-authenticationKeyPath ... existing file"). find_p8_file() { # 1. Variable de entorno explícita if [[ -n "$P8_PATH" ]]; then [[ -f "$P8_PATH" ]] || fail "No existe el fichero APPSTORE_P8_PATH=$P8_PATH" - echo "$P8_PATH" return fi - # 2. Extraer de pass y escribir en fichero temporal + # 2. Extraer de pass y escribir en fichero temporal (limpieza al salir del script) if command -v pass >/dev/null 2>&1 && pass show appstore/api-key-p8 &>/dev/null; then local tmp_p8 tmp_p8="$(mktemp /tmp/AuthKey_XXXXXX.p8)" pass show appstore/api-key-p8 > "$tmp_p8" chmod 600 "$tmp_p8" - # Registrar para limpieza al salir + # Registrar para limpieza al salir del script (trap en el shell principal). trap "rm -f '$tmp_p8'" EXIT - echo "$tmp_p8" + P8_PATH="$tmp_p8" return fi # 3. Fichero por defecto en HOME local default_path="$HOME/AuthKey_${KEY_ID}.p8" if [[ -f "$default_path" ]]; then - echo "$default_path" + P8_PATH="$default_path" return fi # 4. Único .p8 en HOME local matches=("${HOME}"/*.p8(N)) if (( ${#matches[@]} == 1 )); then - echo "${matches[1]}" + P8_PATH="${matches[1]}" return fi @@ -143,7 +147,7 @@ main() { command -v xcodebuild >/dev/null 2>&1 || fail "xcodebuild no esta disponible" command -v xcrun >/dev/null 2>&1 || fail "xcrun no esta disponible" - P8_PATH="$(find_p8_file)" + find_p8_file # asigna P8_PATH; NO usar $(...) o el trap del subshell borra el .p8 P8_DIR="$(dirname "$P8_PATH")" echo "Usando proyecto: $PROJECT_PATH"