> For the complete documentation index, see [llms.txt](https://docs.apryse.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.apryse.com/xamarin/learn-more/objc-ios.md).

# Create Tools package from PDFViewCtrlTools Objective-C source code

Learn how to build PDFTron.iOS.Tools from source for Xamarin.iOS with this comprehensive tutorial. Dive into the Objective-C project and customize UI controls to suit your needs. Get started now! The

{% hint style="info" %}
**This tutorial only applies to Xamarin.iOS.**
{% endhint %}

{% hint style="info" %}
**Why do I want to build Tools package from source?**

`PDFViewCtrlTools` project for iOS is an open source Objective-C project. Although a number of UI controls and tools are provided out-of-the-box, there may be behavior that you would want to change to best suit your own project. The best way to do so will be diving into the source code.
{% endhint %}

Before you get started, it is a good idea to first have some basic knowledge on the topic. Xamarin provides a comprehensive guide on [Binding Objective-C](https://developer.xamarin.com/guides/cross-platform/macios/binding/) and we recommend you to briefly go through it. Please note that you will not need to create a binding project as it is already provided in the package.

Apryse iOS SDK for Xamarin is a completely open source binding project. By the end of this tutorial, you will be able to create `PDFTron.iOS.Tools` from source.

{% hint style="info" %}
**Latest Visual Studio for Mac is required to proceed.**
{% endhint %}

1. Download the [Apryse for Xamarin.iOS SDK package](/xamarin/get-started/xamarin-ios/integrate-ios.md), refer to as `PDFNetXamarin.iOS` package below
2. Download the [Apryse for iOS SDK package](/ios/get-started/get-started.md), refer to as `PDFNetiOS` package below
3. In `PDFNetiOS` package, update the `/Lib/Tools/src/PDFViewCtrlTools` project in Xcode as you wish
4. Once you are done with changing the source code in Objective-C, create `Tools.framework` by clean build from Xcode, the output can be found in `/PDFViewCtrlTools/build/Release-Universal` folder, make sure your build configuration in Xcode looks like the following:

![](https://653871032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgjsBtuYmcKhWOdM9VCg4%2Fuploads%2Fgit-blob-b48f8a689eeca1484e7b5fe4c5380012adbdfb6b%2Fbd4d26e1093a89037b7f988c734989d20e5f9ae7-223x35.png?alt=media)

1. Copy `Tools.framework` from previous step to `PDFNetXamarin.iOS/lib/ios/Native` folder
2. Copy `PDFNet.framework` from `PDFNetiOS/Framework-dynamic` to `PDFNetXamarin.iOS/lib/ios/Native` folder, your `PDFNetXamarin.iOS/lib/ios/Native` folder should now look like this:

![](https://653871032-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FgjsBtuYmcKhWOdM9VCg4%2Fuploads%2Fgit-blob-bd4393c0b3cfc3cd907f425f076d845aaf4d2d4f%2Fffaade3bdaf5ed06fd78767e04f357cc35991d73-233x99.png?alt=media)

1. From `PDFNetXamarin.iOS` package, open `/projectSrc/PDFNetiOSXamarin/PDFNetiOSXamarin.sln` in Visual Studio for Mac
2. Clean the project
3. Build `PDFViewCtrlTools` project
4. You can find the output `PDFTron.iOS.Tools.nupkg` in `PDFNetXamarin.iOS/lib/ios` folder


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.apryse.com/xamarin/learn-more/objc-ios.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
