Фреймворки были бы идеальными, но, как вы сказали, не разрешены на iPhone. Я думаю, что в конце вам нужно будет предоставить как минимум 3 файла: заголовочный файл, статическую библиотеку и комплект ресурсов.
В заголовочном файле будут просто все API, которые вы хотите предоставить. Если у вас несколько классов, вы можете указать несколько заголовков.
Для статической библиотеки я рекомендую скомпилировать ее как обычно для каждой архитектуры (Device и Simulator), а затем использовать lipo для их объединения (замена путей по необходимости):
lipo -create -output output/file/path device/file/path simulator/file/path
С помощью пакета вы можете создать новую цель в XCode для создания пакета, но на самом деле это просто папка. Вам также нужно, чтобы ваш SDK знал, как загрузить пакет и получить доступ к ресурсам. Однако вы не можете загрузить исполняемый код из пакета; Именно поэтому на iPhone не работают фреймворки.