diff --git a/ios/build.zsh b/ios/build.zsh index 59fbf46..5d65cd2 100755 --- a/ios/build.zsh +++ b/ios/build.zsh @@ -55,16 +55,50 @@ function cleanup_build { pod install cd .. - # 4. Signing (Manual Step) - echo "4. Opening Xcode for Signing..." + # 4. Signing (Automated) + echo "4. Configuring Xcode Signing..." XCODE_PROJ="ios/${APP_NAME}.xcodeproj" - # Fallback search if variable name logic differs if [ ! -d "$XCODE_PROJ" ]; then XCODE_PROJ=$(find ios -name "*.xcodeproj" | head -n 1) fi + PBXPROJ="$XCODE_PROJ/project.pbxproj" - open "$XCODE_PROJ" - read + # Set DEVELOPMENT_TEAM in pbxproj + if [ -n "$DEVELOPMENT_TEAM" ]; then + echo " Setting DEVELOPMENT_TEAM=$DEVELOPMENT_TEAM" + sed -i '' "s/PRODUCT_BUNDLE_IDENTIFIER = /DEVELOPMENT_TEAM = $DEVELOPMENT_TEAM; PRODUCT_BUNDLE_IDENTIFIER = /g" "$PBXPROJ" + sed -i '' "s/DEVELOPMENT_TEAM = \"\";/DEVELOPMENT_TEAM = $DEVELOPMENT_TEAM;/g" "$PBXPROJ" + sed -i '' "s/DEVELOPMENT_TEAM = ;/DEVELOPMENT_TEAM = $DEVELOPMENT_TEAM;/g" "$PBXPROJ" + fi + + # Create/Update entitlements file with App Group + ENTITLEMENTS_FILE="ios/${APP_NAME}/${APP_NAME}.entitlements" + if [ -n "$APP_GROUP" ]; then + echo " Setting APP_GROUP=$APP_GROUP" + cat > "$ENTITLEMENTS_FILE" << EOF + + + + + aps-environment + production + com.apple.security.application-groups + + ${APP_GROUP} + + + +EOF + if ! grep -q "CODE_SIGN_ENTITLEMENTS" "$PBXPROJ"; then + sed -i '' "s/DEVELOPMENT_TEAM = $DEVELOPMENT_TEAM;/DEVELOPMENT_TEAM = $DEVELOPMENT_TEAM; CODE_SIGN_ENTITLEMENTS = ${APP_NAME}\\/${APP_NAME}.entitlements;/g" "$PBXPROJ" + fi + fi + + echo "✅ Signing configured automatically" + + # (Old manual step - commented out) + # open "$XCODE_PROJ" + # read } case $1 in @@ -84,6 +118,7 @@ xcodebuild -workspace "$WORKSPACE" \ -configuration Release \ -archivePath "$BUILD_DIR/${APP_NAME}.xcarchive" \ -allowProvisioningUpdates \ + DEVELOPMENT_TEAM="$DEVELOPMENT_TEAM" \ archive 2>&1 | tee "$BUILD_DIR/build.log" # アーカイブ成功確認 diff --git a/ios/preview.zsh b/ios/preview.zsh index 070c575..9c0c88b 100755 --- a/ios/preview.zsh +++ b/ios/preview.zsh @@ -48,25 +48,62 @@ cd ios pod install cd .. -# 4. Signing (Manual Step) -echo "4. Opening Xcode for Signing..." +# 4. Signing (Automated) +echo "4. Configuring Xcode Signing..." XCODE_PROJ="ios/${APP_NAME}.xcodeproj" -# Fallback search if variable name logic differs if [ ! -d "$XCODE_PROJ" ]; then XCODE_PROJ=$(find ios -name "*.xcodeproj" | head -n 1) fi +PBXPROJ="$XCODE_PROJ/project.pbxproj" -open "$XCODE_PROJ" -echo "========================================================" -echo " [ACTION REQUIRED] " -echo " Xcode opened ($XCODE_PROJ)." -echo " 1. Go to 'Signing & Capabilities' tab." -echo " 2. Select your Team." -echo " 3. Verify 'App Clip' target is gone." -echo " 4. Ensure no red errors exist." -echo " Press ENTER here once you are done to continue building." -echo "========================================================" -read +# Set DEVELOPMENT_TEAM in pbxproj +if [ -n "$DEVELOPMENT_TEAM" ]; then + echo " Setting DEVELOPMENT_TEAM=$DEVELOPMENT_TEAM" + # Add DEVELOPMENT_TEAM to all build configurations + sed -i '' "s/PRODUCT_BUNDLE_IDENTIFIER = /DEVELOPMENT_TEAM = $DEVELOPMENT_TEAM; PRODUCT_BUNDLE_IDENTIFIER = /g" "$PBXPROJ" + # Also set where it might already exist but be empty + sed -i '' "s/DEVELOPMENT_TEAM = \"\";/DEVELOPMENT_TEAM = $DEVELOPMENT_TEAM;/g" "$PBXPROJ" + sed -i '' "s/DEVELOPMENT_TEAM = ;/DEVELOPMENT_TEAM = $DEVELOPMENT_TEAM;/g" "$PBXPROJ" +fi + +# Create/Update entitlements file with App Group +ENTITLEMENTS_FILE="ios/${APP_NAME}/${APP_NAME}.entitlements" +if [ -n "$APP_GROUP" ]; then + echo " Setting APP_GROUP=$APP_GROUP" + cat > "$ENTITLEMENTS_FILE" << EOF + + + + + aps-environment + development + com.apple.security.application-groups + + ${APP_GROUP} + + + +EOF + # Add CODE_SIGN_ENTITLEMENTS to pbxproj if not present + if ! grep -q "CODE_SIGN_ENTITLEMENTS" "$PBXPROJ"; then + sed -i '' "s/DEVELOPMENT_TEAM = $DEVELOPMENT_TEAM;/DEVELOPMENT_TEAM = $DEVELOPMENT_TEAM; CODE_SIGN_ENTITLEMENTS = ${APP_NAME}\\/${APP_NAME}.entitlements;/g" "$PBXPROJ" + fi +fi + +echo "✅ Signing configured automatically" + +# (Old manual step - commented out) +# open "$XCODE_PROJ" +# echo "========================================================" +# echo " [ACTION REQUIRED] " +# echo " Xcode opened ($XCODE_PROJ)." +# echo " 1. Go to 'Signing & Capabilities' tab." +# echo " 2. Select your Team." +# echo " 3. Verify 'App Clip' target is gone." +# echo " 4. Ensure no red errors exist." +# echo " Press ENTER here once you are done to continue building." +# echo "========================================================" +# read # 5. Run echo "5. Building and Running..."