You can't access the bundle of another app. You have only access to your app's bundle. When you use bundleWithIdentifier:
the iOS looks for a bundle that matches the provided identifier within your app's sandbox. In your above mentioned case, there will be no such NSBundle
available, so it'll return nil.
According to NSBundle Class Reference
bundleWithIdentifier:
Returns the previously created NSBundle instance that has the
specified bundle identifier.
Declaration
Swift
init?(identifier identifier: String) -> NSBundle
Objective-C
+ (NSBundle *)bundleWithIdentifier:(NSString *)identifier
Parameters
identifier
The identifier for an existing NSBundle instance.
Return Value
The previously created NSBundle instance that has the bundle
identifier identifier. Returns nil if the requested bundle is not
found.
Discussion
This method is typically used by frameworks and plug-ins to locate
their own bundle at runtime. This method may be somewhat more
efficient than trying to locate the bundle using the bundleForClass:
method. However, if the initial lookup of an already loaded and cached
bundle with the specified identifier fails, this method uses
potentially time-consuming heuristics to attempt to locate the bundle.