iOS and iPadOS Network Monitoring Customization - Whitelisting, Privacy, and Timeout with Appxiom framework
Appxiom provides flexible network monitoring for iOS and iPadOS apps. You can whitelist hosts, group dynamic endpoints, mask sensitive headers, and set network timeouts using Info.plist configuration.
Whitelisting Hosts
Use the HTTPMonitoring key within the AX section of your Info.plist to whitelist hosts. Only HTTP(s) calls to these hosts will be tracked by Appxiom.
Info.plist Example:
<key>AX</key>
<dict>
<key>HTTPMonitoring</key>
<dict>
<key>your-host.com</key>
<dict/>
<key>another-host.com</key>
<dict/>
</dict>
</dict>
Please make sure that only one AX key exists in your Info.plist file.
Grouping Dynamic Path Components
When API call issues are reported, different URLs (with dynamic IDs) can create separate tickets. Use PathPatterns in Info.plist to group endpoints with dynamic path components. Wrap dynamic segments in {}.
Info.plist Example:
<key>AX</key>
<dict>
<key>HTTPMonitoring</key>
<dict>
<key>*</key>
<dict>
<key>PathPatterns</key>
<dict>
<key>/users/{userId}</key>
<dict/>
<key>/posts/{id}</key>
<dict/>
</dict>
</dict>
</dict>
</dict>
Please make sure that only one AX key exists in your Info.plist file.
Privacy: Masking Sensitive Headers
Appxiom allows you to mask sensitive request/response headers using MaskedHeaders in Info.plist. You can specify one or more header keys to be masked before reporting issues.
Info.plist Example:
<key>AX</key>
<dict>
<key>HTTPMonitoring</key>
<dict>
<key>*</key>
<dict>
<key>PathPatterns</key>
<dict>
<key>*</key>
<dict>
<key>MaskedHeaders</key>
<array>
<string>X-Key</string>
</array>
</dict>
<key>/users</key>
<dict>
<key>MaskedHeaders</key>
<array>
<string>Accept</string>
<string>X-Key</string>
</array>
</dict>
</dict>
</dict>
</dict>
</dict>
Please make sure that only one AX key exists in your Info.plist file.
Use Case:
X-Keywill be masked for all hosts and endpoints.Acceptwill be masked only for/usersendpoint.
Setting Host or Endpoint Timeout
Set timeouts for hosts or endpoints using the NetworkTimeout key (in milliseconds). If a call exceeds the set value, an issue report is raised.
Info.plist Example:
<key>AX</key>
<dict>
<key>HTTPMonitoring</key>
<dict>
<key>*</key>
<dict>
<key>PathPatterns</key>
<dict>
<key>*</key>
<dict>
<key>NetworkTimeout</key>
<integer>4000</integer>
</dict>
<key>/fileUpload</key>
<dict>
<key>NetworkTimeout</key>
<integer>50000</integer>
</dict>
</dict>
</dict>
</dict>
</dict>
Please make sure that only one AX key exists in your Info.plist file.
Frequently Asked Questions (FAQ)
Q: What is the purpose of HTTPMonitoring in Info.plist?
A: It allows you to control which hosts and endpoints are monitored by Appxiom, and to mask sensitive data as well, improving focus and privacy.
Q: Can I group API calls with dynamic path components?
A: Yes, use PathPatterns to group endpoints with dynamic segments (e.g., /users/{userId}) so similar calls are reported as a single ticket.
Q: How do I mask sensitive headers in network reports?
A: Use the MaskedHeaders key in Info.plist to specify which headers should be filtered before sending data to Appxiom.
Q: What happens if I have multiple AX keys in Info.plist?
A: Only one AX key should exist to avoid configuration conflicts and ensure proper monitoring.
Q: Can I set different timeouts for different endpoints?
A: Yes, use the NetworkTimeout key under each PathPattern to set custom timeouts per endpoint.
Q: Will masking headers affect my app’s functionality?
A: No, masking only affects what is sent to Appxiom for issue reporting, not your app’s runtime behavior.
Q: What if I don’t whitelist any hosts?
A: If no hosts are whitelisted, Appxiom will monitor all network calls.