PKPassLibrary not returning passes - swift

I have added Debit Card programmatically to Apple Wallet using swift code.
I need to show card status as provisioned so that user can should not try to add this card again.
for that I am using below code to get passes from wallet
let passLibrary = PKPassLibrary()
let devicePaymentPasses = passLibrary.passes().compactMap { $0.paymentPass }
let remotePaymentPasses = passLibrary.remotePaymentPasses()
both devicePaymentPasses and remotePaymentPasses are empty. please help.

You need to add the Wallet entitlement to the app, in order to read passes created with the app's team ID.

Related

How to retrieve name of user in firebase

I am creating an app (Xcode, swift) that has a profile page for each user and I want their name to appear on that page.
I have been able to get their email address through:
let email : String = (Auth.auth().currentUser?.email)!
How would I gather the users name? I have the users UID as well.
I am using firebase by the way
If you are not using Google or Facebook to log in with firebase, You need to manually create the profile for each user. See Update a user's profile
If you're using a social provider to sign in, you can get the display name from that provider through Firebase with:
Auth.auth().currentUser?.displayName
If you're signing in with another provider, the display name won't automatically be set, and you will (as Abdullah answered) have to create your own registration system where the user enters their name - and you then store it in the displayName property of Firebase Authentication.
To achieve what you requested, you either have to use a social auth provider (such as Google or Facebook) or change it yourself from the client, as the other answers suggest.
First of all, you would have to create a changeRequest, using the following code
let changeRequest = Auth.auth().currentUser?.createProfileChangeRequest()
Once the change request is created, you can change whatever basic information you need to (either the photo URL or the display name) with the following code:
changeRequest?.displayName = "Lorem ipsum"
changeRequest?.photoURL = "https://your_link/path_to_image.png"
Finally, you must send the change request to Firebase, which will handle it and possibly return an error for you to handle.
changeRequest?.commitChanges { error in
if let error = error {
print(error.localizedDescription)
// You can handle the given error here
return
}
}
As others have already pointed out, you can find this and more information on the official on the official Firebase docs website.

Add the Association Domains feature to your App Id?

I'm trying to implement Firebase Dynamic Linking.
i have created project on firebase console and provided the required
value(prefx and appid).
i also have allowed the association domains from developer console
and it is sucessfully showing true flag.
in xcode i have on the feature of association domain and added the url identifiers etc.
Problem: still the problem i'm facing is that Association Domain Section says
Add the Association Domains feature to your App ID.
don't know whats the reason why i'm getting this error.
The screen shot is also attached for prove.
i have figured this out by searching for long time.
This is basically not a big issues the error
“Add the associated Domains feature to your App ID”
Will go away once you enable the Associated Domains in your APP ID in developer.apple.com. If it doesn’t go away, quit and relaunch the xcode few times and it will work.
reference: https://medium.com/#abhimuralidharan/universal-links-in-ios-79c4ee038272
I had a similar problem. The problem was solved when I turned off and turned on the feature in Capabilities. But then I had several entitlements files in different folders. Steps to combine these files into one:
Open in text editor MY_PROJECT_NAME.xcodeproj\project.pbxproj
Find CODE_SIGN_ENTITLEMENTS and set correct path. Example:
"MY_PROJECT_NAME/Entitlements/MY_TARGET_NAME.entitlements"
I do not recommend using a standard text editor, since it can automatically replace some characters in the file while saving.
You need to add Associated domains to your App Capabilities. Please see screenshot. Add applinks:yourdomain.com
Then Use below code to get Short URL
guard let link = URL(string: "https://www.yourdomain.com/share_location.html?Id=\(RandomID)&uid=\(uid)") else { return }
let dynamicLinksDomain = "yourdomain.page.link"
let components = DynamicLinkComponents(link: link, domain: dynamicLinksDomain)
// [START shortLinkOptions]
let options = DynamicLinkComponentsOptions()
options.pathLength = .unguessable
components.options = options
// [END shortLinkOptions]
// [START shortenLink]
components.shorten { (shortURL, warnings, error) in
// Handle shortURL.
if let error = error {
print(error.localizedDescription)
return
}
print(shortURL?.absoluteString ?? "")
}

Send information to webpage via iPhone app

I´m in the middle of making an order placement app for iPhone using swift.
The app itself is coming along great, but I have a couple of issues I need some help with:
When the user starts the app for the first time, he must make an account with name and address. I can make a basic form for this, but the app must store the information so that the user doesn't´ have to log in every time. How is this done?
When the user presses the "order" button, the order needs to be sent (with name and address from above) to the store´s webpage to be processed.
How is this done?
I hope someone can help me out with this, or point me in the right direction.
Issue number 1 : store the property if user logged in in defaults i.e
#IBAction func loginTapped(_ sender : UIButton) {
if loginSuccssfull{
UserDefaults.standard.set(true , forKey : "loggedIn")
}
}
Then in your first view controllers view did load add following lines
if !UserDefaults.standard.bool(forKey : "loggedIn"){
// present login screen
}
else {
// continue normal
}
Here your are just saving when user logged in and checking if he is already logged in ...
For your second issue you can get help from the following answer on Stackoverflow
HTTP Request in Swift with POST method

Parse - Unity3D : How to create a user after a Facebook Connect

'm using the Facebook SDK 6.0 for Unity3D.
After my user accept the connection, I want to save his ID, email etc ... on a Parse database, and have the possibility to get some info from this database for this player (for exemple : the list of unlock levels).
How can I do it ?
I know how create an object, but I want to know, after a connection on Facebook, how to save the user and some details on Parse, without using the Parse login (as on the official Parse tutorial).
I can't understand.
Thank you very very much in advance for your help.
Best regards,
AB
You can try saving this information in the local ParseUser Object. Just add custom fields with the necessary information. For more complex solutions you can create a custom parse object to save the information.
https://parse.com/docs/unity_guide#users
var user = new ParseUser()
{
Username = "my name",
Password = "my pass",
Email = "email#example.com"
};
// other fields can be set just like with ParseObject
user["IsUnlocked"] = true;
Task signUpTask = user.SignUpAsync();
and for Facebook there is a special signup method in the ParseFacebookUtils class
https://parse.com/docs/unity_guide#fbusers
Task<ParseUser> logInTask = ParseFacebookUtils.LogInAsync(userId, accessToken, tokenExpiration);

Charboost Ad not dispalying in my app

I am integrating chart boost Ad into my iOS app. But it is not displaying any Ad.
I used the following code in 'applicationDidBecomeActive' method, to display the chart boost.
Chartboost *cb = [Chartboost sharedChartboost];
cb.appId = "YOUR_CHARTBOOST_APP_ID";
cb.appSignature = "YOUR_CHARTBOOST_APP_SIGNATURE";
// Begin a user session
[cb startSession];
// Show an interstitial
[cb showInterstitial];
What is the problem with this? Is there anything else that I have to do?
Thanking You in Advance
You can refer following links:-
https://help.chartboost.com/downloads/ios
https://github.com/ChartBoost/client-examples
The second link contains example code too, so you can refer that, and your code just need to be written in appdelegate file with proper chartboost_id and chartboost_secret. [cb showInterstitial] should be in the controller you want to display ads.
Is it giving you any error message ? You don't want to show us your appId and appSignature or you are assigning the same appId and appSignature.
If you have not created them yet please go through this link
1.Create an account.
2.Choose Apps tab then Add App
3.Fill all fields.
After that use that appId and appSignature in your code. You will able to show Interstitial popup.
If you want to show More Apps list too then you will have to add a Campaigns.
Select Campaigns tab then add Campaigns > Publish in Network and fill the detail. After that edit your app choose More App Page fill the added Campaigns name in that device and click on save. Now you can use [[Chartboost sharedChartboost] showMoreApps]; method too.
Note: If you are testing it on simulator and app is not live your Chartboost's app's test mode should be enabled.