To solve this problem, we first need to define the decision variables and the objective function. Let's denote the number of flight jackets produced as $F$ and the number of denim jackets produced as $D$. The objective is to maximize profit, which can be calculated as $70F + 100D$, since each flight jacket generates a profit of $70 and each denim jacket generates a profit of $100.

The constraints are:
1. Production rate for flight jackets: $F \leq 10$
2. Production rate for denim jackets: $D \leq 25$
3. Sewing machine capacity: $F + D \leq 30$

Now, let's translate this problem into Gurobi code in Python:

```python
from gurobipy import *

# Create a model
m = Model("Jacket_Production")

# Define decision variables
F = m.addVar(lb=0, vtype=GRB.INTEGER, name="Flight_Jackets")
D = m.addVar(lb=0, vtype=GRB.INTEGER, name="Denim_Jackets")

# Set the objective function to maximize profit
m.setObjective(70*F + 100*D, GRB.MAXIMIZE)

# Add constraints
m.addConstr(F <= 10, "Flight_Jacket_Production_Rate")
m.addConstr(D <= 25, "Denim_Jacket_Production_Rate")
m.addConstr(F + D <= 30, "Sewing_Machine_Capacity")

# Optimize the model
m.optimize()

# Print the results
if m.status == GRB.OPTIMAL:
    print("Optimal solution found.")
    print(f"Produce {F.x} flight jackets and {D.x} denim jackets to maximize profit.")
else:
    print("No optimal solution found. The problem may be infeasible.")

```