Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Weak link framework

Due to the last release of the adMob package, I have added the MessageUI framework to my project. As I wish to deploy my application to 2.x OS devices, I have weak linked MessageUI as advised.

If I build for iPhone device 3.0, it works fine.

If I build for iPhone device 2.2.1, I get a link error: "ld: framework not found MessageUI"

Where could I be wrong?

like image 437
Fred Avatar asked Apr 13 '10 07:04

Fred


2 Answers

This answer is missing important info - You also have to manually set the specific framework to link as "weak" instead of "required" :

in xcode - right click on the TARGET (!!!!) -> get info -> in the "General" tab, in the linked libraries list, you have a column on the right side titled "type".

The change needs to be performed there for frameworks that don't exist in previous versions of IOS.

like image 83
Yoni Shalom Avatar answered Sep 19 '22 20:09

Yoni Shalom


You are getting that error because you are building against a version of the SDK that does not implemement the MessageUI framework.

What you need to do is to build for iPhone OS 3.0, but in the build settings for your target set the iPhone OS Deployment Target to iPhone OS 2.0 (or whatever minimum version you'd like to support with your final application). This way, you weak-link against the newer framework, but can still deploy the application to older devices.

like image 27
Brad Larson Avatar answered Sep 17 '22 20:09

Brad Larson