You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There are different ways to sign an IPA file with applesign for experimental reasons.
132
+
There are different ways to sign an IPA file with applesign for experimental
133
+
reasons.
138
134
139
135
You may want to check the following options:
140
136
141
137
**-c, --clone-entitlements**
142
138
143
-
put the entitlements embedded inside the signed mobileprovisioning file provided by the user as the default ones to sign all the binaries
139
+
put the entitlements embedded inside the signed mobileprovisioning file provided
140
+
by the user as the default ones to sign all the binaries
144
141
145
142
**-S, --self-sign-provision**
146
143
@@ -152,72 +149,81 @@ use the default entitlements plist. useful when troubleshooting
152
149
153
150
The default signing method does as follow:
154
151
155
-
* Grab entitlements from binary
156
-
* Remove problematic entitlements
157
-
* Grab entitlements from the provisioning
158
-
* Adjust application-id and team-id of the binary with the provisioning ones
159
-
* Copy the original mobileprovisioning inside the IPA
160
-
* Creates ${AppName}.entitlements and signs all the mach0s
152
+
- Grab entitlements from binary
153
+
- Remove problematic entitlements
154
+
- Grab entitlements from the provisioning
155
+
- Adjust application-id and team-id of the binary with the provisioning ones
156
+
- Copy the original mobileprovisioning inside the IPA
157
+
- Creates ${AppName}.entitlements and signs all the mach0s
161
158
162
159
After some testing we will probably go for having -c or -E as default.
163
160
164
-
In addition, for performance reasons, applesign supports -p for parallel signing. The order of signing the binaries inside an IPA matters, so applesign creates a dependency list of all the bins and signs them in order. The parallel signing aims to run in parallel as much tasks as possible without breaking the dependency list.
161
+
In addition, for performance reasons, applesign supports -p for parallel
162
+
signing. The order of signing the binaries inside an IPA matters, so applesign
163
+
creates a dependency list of all the bins and signs them in order. The parallel
164
+
signing aims to run in parallel as much tasks as possible without breaking the
165
+
dependency list.
165
166
166
-
Mangling
167
-
--------
167
+
## Mangling
168
168
169
-
It is possible with `--force-family` to remove the UISupportedDevices from the Info.plist and replace the entitlement information found in the mobileprovisioning and then carefully massage the rest of entitlements to drop the privileged ones (`--massage-entitlements`).
169
+
It is possible with `--force-family` to remove the UISupportedDevices from the
170
+
Info.plist and replace the entitlement information found in the
171
+
mobileprovisioning and then carefully massage the rest of entitlements to drop
172
+
the privileged ones (`--massage-entitlements`).
170
173
171
174
Other interesting manipulations that can be done in the IPA are:
172
175
173
176
**-I, --insert [frida.dylib]**
174
177
175
-
Allows to insert a dynamic library in the main executable. This is how Frida can be injected to introspect iOS applications without jailbreak.
178
+
Allows to insert a dynamic library in the main executable. This is how Frida can
179
+
be injected to introspect iOS applications without jailbreak.
176
180
177
181
**-l, --lipo [arm64|armv7]**
178
182
179
-
Thinifies an IPA by removing all fatmach0s to only contain binaries for one specified architecture. Also this is helpful to identify non-arm binaries embedded inside IPA that can be leaked from development or pre-production environments.
183
+
Thinifies an IPA by removing all fatmach0s to only contain binaries for one
184
+
specified architecture. Also this is helpful to identify non-arm binaries
185
+
embedded inside IPA that can be leaked from development or pre-production
186
+
environments.
180
187
181
-
In order to thinify the final IPA even more, applesign allows to drop the watchapp extensions which would not be necessary for non Apple Watch users.
188
+
In order to thinify the final IPA even more, applesign allows to drop the
189
+
watchapp extensions which would not be necessary for non Apple Watch users.
182
190
183
-
Performance
184
-
-----------
191
+
## Performance
185
192
186
-
Sometimes the time required to run the codesigning step matters, so applesign allows to skip some steps and speedup the process.
193
+
Sometimes the time required to run the codesigning step matters, so applesign
194
+
allows to skip some steps and speedup the process.
187
195
188
196
See `--dont-verify` and `--parallel` commandline flags.
189
197
190
198
Enabling those options can result on a 35% speedup on ~60MB IPAs.
0 commit comments